【问题标题】:Using different drawable folders based on screen sizes?根据屏幕尺寸使用不同的可绘制文件夹?
【发布时间】:2014-03-14 13:49:40
【问题描述】:

我想添加平板电脑图形,但 android(我使用 eclipse)没有在正确的可绘制文件夹中查找。我创建了新文件夹(在 /res 中)drawable-large-ldpi(对于每个密度)和 drawable-xlarge-ldpi(对于每个密度)但是当我在平板电脑上运行应用程序时,它仍然会从中等大小的图像中获取图像可绘制文件夹(drawable-ldpi)。我认为添加 drawable-large 和 drawable-xlarge 会使 android 在正确的文件夹中查找屏幕大小,但显然不是。

我做错了什么?我是否需要实现某些东西,或者在某处声明新的可绘制文件夹。

【问题讨论】:

  • 你用的是哪款平板电脑?

标签: android eclipse directory drawable


【解决方案1】:

SimonSays 是对的。对于drawable,您不需要后缀 large、xlarge 等。您应该只为设备密度添加后缀,如 ldpi、hdpi、xhdpi 等。所以删除所有带有 drawable-large-* 和 drawable-xlarge-* 文件夹的文件夹,然后保留drawable-ldpi、drawable-hdpi 等您支持的每种屏幕密度。

【讨论】:

  • 如果我这样做,那么显示的图形就太小了。如果我缩放图形,那么它们会变得非常模糊。
【解决方案2】:

我认为您在文件夹名称中混合了大小和分辨率。您应该只使用两者之一,而不是两者(drawable-large 而不是drawable-large-hdpi)。查看 here 以获取正确的文件夹名称。

【讨论】:

  • 我仍然不知道应该为我的可绘制文件夹命名。我可以设置应用程序在哪个可绘制文件夹中查找还是仅限于这五个文件夹?
  • 您无法设置设备将查看哪个drawable。它会自动查看最合适的文件夹。
  • @Java,如果需要,您可以将所有可绘制对象放在一个可绘制文件夹中。 Android 足够聪明,可以查看所有这些文件夹,如果没有找到与其所需的密度/大小完全匹配的内容,它将递归到最接近的最大密度匹配并为您进行适当的缩放计算。不,系统不仅限于这五个文件夹。例如,系统有国家和语言的限定符,所以如果我有一个 drawable-fr_rUS/ 文件夹,那么如果设备设置为美国和法语,我会告诉系统选择该文件夹。
  • 该系统的美妙之处在于,一旦我开始编写我的 java 代码,我就不需要为每个国家或每种语言添加条件(就像我不需要修改我的 java设备具有的特定密度或尺寸的代码)。我只是指我的drawable,根据我的应用程序安装的设备,drawable将是它所在的特定设备的正确设备(如果所需的特定文件夹为空或不存在,它将级联到对它所在的设备最有意义的可绘制文件夹)。
  • 当然,您可以随时将位图放入 assets/ 文件夹,然后从那里使用它们。如果您将位图放在 assets/ 文件夹中,Android 将按原样使用它们而不对它们进行任何调整。换句话说,这些位图将不再被视为可绘制对象,并且不会对它们显示的屏幕类型进行补偿(除非您决定自己手动编写自己的包装类以考虑所有这些不同的设备变体)。
【解决方案3】:

只有0.1% of android devices 同时拥有xlargeldpi 屏幕。

不仅如此,当可绘制对象是占据整个屏幕宽度或整个高度的位图图像时(例如,当您使用位图图像作为背景时),您应该只在可绘制对象上使用大小限定符整个屏幕的图像)。

对于大多数可绘制对象(我刚才提到的例外情况除外),您应该去掉尺寸限定符,只保留密度限定符。

【讨论】:

  • 但我最终得到的图像要么太小要么太模糊
  • 没有限定符的默认 drawable/ 文件夹是 mdpi。相反,您应该创建一个 drawable-xxhdpi/ 文件夹,删除之前的 drawable/ 文件夹,并为其提供一个 xxhdpi 图像(一个 xxhdpi 图像大约是 mdpi 大小的 3 倍)。即使您的平板电脑只有 xhdpi 或 hdpi,您也应该提供最高分辨率的 xxhdpi 位图并将其标记为这样,以便系统可以根据自身密度的需要对其进行缩小。但即使这样并不完美,图像也不会再模糊,但如果有一条只有一个像素粗的线条,它可能会随着缩小比例而消失。
  • 因此,如果您希望您的工作完全没有错误,您仍然应该尝试自己手动进行缩小并使用这五个文件夹。我只是建议您只使用一个带有 xxhdpi 作为快捷方式的可绘制文件夹,以防万一结果不需要完美。无论如何,这里有一个备忘单,用来帮助我记住不同 Android 密度之间的大致比例。 doubleencore.com/2014/01/android-design-cheat-sheet
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-30
  • 1970-01-01
  • 1970-01-01
  • 2016-03-30
相关资源
最近更新 更多