Android DPI独立于具有相同分辨率的设备

问题描述:

我有关于Android屏幕/ DPI /分辨率独立性的一些常见问题。Android DPI独立于具有相同分辨率的设备

基本上,我正在考虑基于精灵的应用程序,例如基于Surfaceview的应用程序。

我读过的每本指南(包括官方指南)都表示,您只应使用新闻部而不是解决方案。

但是,当两个设备具有不同的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等),则相对于屏幕尺寸,精灵在笔记上看起来会比在标签上更大。

任何人都可以请直接对我这个,因为我只是不能解决它!谢谢大家。

+0

您是否阅读过支持多屏幕的开发指南?它解释了如何为不同的可绘制资源规划图像大小,并解释Android如何根据屏幕大小和密度来推广不同设备。 http://developer.android.com/guide/practices/screens_support.html – Squonk 2012-01-04 02:03:04

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

如果你想同样大小相对精灵是屏幕无论是像素密度,那么你可以把图像在drawable-nodpi文件夹中,他们将不会被系统缩放。查询屏幕大小后,您甚至可以决定在代码中使用哪个大小的图像。 (截至3.2,您可以拥有资源文件夹,这取决于屏幕像素大小,但我认为它们仍然可以按dpi进行缩放。)

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

+0

谢谢特德。如果我在选项卡上使用50x50图像,并在注释上使用50x50,则相对大小将相同,这就是我的效果,我不知道drawable-nodpi文件夹,所以谢谢!但是,我仍然希望为不同的分辨率使用不同尺寸的图像。 (也就是说,如果我在800x480屏幕上使用50x50,它会显得太大(相对于屏幕),所以是否有类似于DPI的分辨率特定文件夹?我应该将文件夹命名为“小”,“正常”, 'large'和'xlarge' - 我没有意识到这些可能包含资源文件,总是认为它们是用于布局的!谢谢 – 2012-01-04 23:10:06

+0

@PaulButt - 你可以使用任何类型资源的资源类型限定符,也可以将它与像素密度(或其他属性),所以你可以有'drawable-large-hdpi'和'drawable-large-mdpi'。这是如何工作的以及这样做的规则在这里被描述[http:// developer.android.com/guide/topics/resources/providing-resources.html)。从3.2开始,有更好的方法来定位屏幕尺寸,如[这里]所述(http://developer.android.com/guide/) practice/screens_support.html#DeclaringTabletLayouts)。 – 2012-01-05 01:37:21

+0

非常感谢! – 2012-01-05 23:44:40