java - 如何根据 Android 手机的分辨率将 PNG 文件定义为可绘制对象调整大小?

标签 java android eclipse image drawable

我有一个 32x32 像素的 PNG 文件。我将其中的 8 个连续用作我的应用程序的可绘制对象。这些可绘制对象不在 hdpi、mdpi 或 ldpi 文件夹中。我发现启动 3 个标准尺寸模拟器中的任何一个时,包含所有 8 个可绘制对象的屏幕 View 看起来几乎相同。

我注意到我使用的 ldpi 模拟器 (QVGA) 的分辨率为 240x320。 8 x 32 = 256,所以因为我可以看到我所有的可绘制对象(以及中间的空间),所以我敢打赌它们的大小正在发生变化。

我读过Supporting Multiple Screens Android 开发者页面上的文档,但我仍然不明白实际发生了什么。您能否用自己的话来解释我的可绘制对象的大小发生了什么变化,以及 SDK 如何知道自动修改它们?

最佳答案

当然 - 如果您不定义自己的图像,系统会自动调整可绘制目录中图像的大小,以对应于设备的 DPI。所以实际上“drawable”目录与“drawable-mdpi”目录几乎相同,并且由于您没有定义 ldpi 和 hdpi 版本,系统会自动从您的 mdpi 资源中构建它们。请参阅此处的 (1.):http://developer.android.com/guide/practices/screens_support.html#support - “资源的预缩放(例如图像 Assets )”

当然,您的图标在 ldpi 设备上看起来还不错,但在 hdpi 设备上看起来很丑。这是因为 mdpi 图标被缩放以匹配更高的尺寸,有效地导致每个像素的信息更少。

关于java - 如何根据 Android 手机的分辨率将 PNG 文件定义为可绘制对象调整大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3890018/

相关文章:

eclipse - Spring Boot应用程序不会从Eclipse启动,但可以从Cygwin运行

java - 通过 HTTP 的随机访问文件

java - java后期开发的自动化测试工具

java - 如何修复Android Studio中的 ‘null json data ’错误

Android:Horizo​​ntalScrollView smoothScroll 动画时间

java - 检查用户是否选择了 fragment 项目

java - 尽管我将 jar 文件添加到类路径 (Eclipse),但为什么与 SQLite 的连接失败?

java - Eclipse 的 Function 上的 "extract to method"导致编译错误

java - 带有 JDBC 或 Hibernate 的 PostgreSQL,用于使用 CSV 数据的 Web 应用程序

java - HashSet 实现中的空对象