【问题标题】:Working with different screen sizes and different densities for resource drawables使用不同的屏幕尺寸和不同的资源绘制密度
【发布时间】:2013-08-05 15:13:59
【问题描述】:

我正在为我的应用程序准备可绘制对象。经过一番研究,我了解到需要考虑的 3 个参数是屏幕尺寸、密度和分辨率。

1.) 因为对于特定的屏幕尺寸,如果密度变化,则相应的分辨率将自动变化。此外,对于特定的密度,如果屏幕尺寸发生变化,则相应的分辨率将自动变化。

按照这个逻辑,我不再考虑分辨率,并计划只关注屏幕尺寸和密度。我在这种方法中是否正确?

2.) 现在根据文档,如果您正在为 mdpi 准备 100x100 图像,那么您应该有 75x75 和 150x150 图像分别用于 ldpi 和 hdpi。

因此,我创建了一个尺寸为 100x100 且密度为 160 (mdpi) 的可绘制图像资源 (.png)。然后我创建了相同的图像,尺寸为 75x75,密度为 120 (ldpi) 和 150x150,密度为 240 (hdpi),并将它们放置在各自的 drawables 文件夹中。

但是在这样做之后,当我在具有不同屏幕尺寸和不同密度组合的模拟器上运行应用程序时,drawables 就不能正确地适合给定的空间。

在一些较小的屏幕尺寸中,第三个图标会被切到一半。

我做错了吗?

任何帮助表示赞赏。

请参考:

【问题讨论】:

  • 您是否使用单独的可绘制文件夹,例如drawable-hdpi?
  • 方向也是一个重要因素;)
  • @crocboy : 是的,我正在使用drawable-hdpi、drawable-mdpi、drawable-hdpi 和默认的drawable 文件夹
  • @StefandeBruijn : 我已经锁定了仅限肖像的应用程序

标签: android android-layout android-drawable


【解决方案1】:

您必须按照惯例将图像放在 res/drawable 文件夹中。

在 res 文件夹中可能有多个可绘制文件夹,例如 res/drawable-ldpi、res/drawable-mdpi、res/drawable-hdpi、res/drawable-xhdpi 和 res/drawable-tvdpi。

您可能正在为具有不同屏幕分辨率和屏幕尺寸的不同手机创建应用。

Android根据屏幕的dpi对手机屏幕进行分类,分别为ldpi、mdpi、hdpi、xhdpi、tvdpi(分别为low、med、high、xtra high、tv)。

您的目标是为每种类型的目标设备将图像的每个副本添加到这些文件夹中。为此,您必须以 dpi 比率调整图像大小。

3:4:6:8 是默认的 dpi 缩放比例

More

【讨论】:

  • 我已经这样做了。正如问题本身所提到的,我正在创建 3 个版本的相同图像资源并将它们放入 drawable-hdpi、drawable-mdpi、drawable-hdpi 和 drawable 文件夹中。但它仍然无法正常工作,如问题中所述并附上截图。
猜你喜欢
  • 2014-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-02
相关资源
最近更新 更多