0

我有一些关于 Android 屏幕/DPI/分辨率独立性的一般性问题。

基本上,我特别关注基于 sprite 的应用程序,例如基于 Surfaceview 的应用程序。

我读过的每一份指南(包括官方指南)都说你应该只使用 DPI 而不是分辨率。

但是,当两台设备的 DPI/屏幕尺寸不同但分辨率相同时会发生什么?拿 Galaxy tab 10.1 (1280 x 800 - DPI aprox 150) 和 Galaxy Note (我认为是 1280 x 800 aprox 285 DPI??)

当在每一个上显示一个 50 x 50 的精灵时,相对于屏幕尺寸,它看起来是相同的尺寸。但是,如果 Android 因为检测到不同的 DPI(即,来自 LDPI、HDPI 等)而抓取了不同大小的精灵,那么相对于屏幕尺寸,Note 上的精灵看起来会比 Tab 上的要大。

任何人都可以请我直接解决这个问题,因为我无法解决它!谢谢大家。

4

1 回答 1

3

150dpi 屏幕上的 50 x 50 精灵会比 285dpi 屏幕上的 50 x 50 精灵大得多。Android 的资源分辨率算法旨在允许您定义更大(以像素为单位)的图像,以便在更高密度的屏幕上使用。

如果您希望精灵相对于屏幕大小相同而不管像素密度如何,则可以将图像放在drawable-nodpi文件夹中,系统不会对其进行缩放。您甚至可以在查询屏幕尺寸后决定在代码中使用哪种尺寸的图像。(从 3.2 开始,您可以拥有取决于屏幕像素大小的资源文件夹,但我认为它们仍会随 dpi 缩放。)

屏幕分辨率是指以像素为单位的屏幕尺寸。像素密度是指填满一英寸屏幕需要多少像素。

于 2012-01-04T01:38:15.783 回答