我对Android屏幕/ DPI /解决方案独立性有一些一般性问题。
基本上,我特别关注基于精灵的应用,例如基于Surfaceview的应用。
我读过的每本指南(包括官方指南)都说你应该只使用DPI而不是解决方案。
然而,当两台设备具有不同的DPI /屏幕尺寸但分辨率相同时会发生什么?拿Galaxy选项卡10.1(1280 x 800 - DPI aprox 150)和Galaxy Note(1280 x 800 aprox 285 DPI,我认为??)
当在每个上面显示50 x 50的精灵时,它看起来与屏幕尺寸相同。但是,如果Android抓取一个不同大小的sprite,因为它检测到不同的DPI(即来自LDPI,HDPI等),那么相对于屏幕大小,精灵在精灵上看起来会比在Tab上更大。
任何人都可以请我直截了当,因为我无法解决这个问题!谢谢大家。
答案 0 :(得分:3)
150dpi屏幕上的50 x 50精灵将比285dpi屏幕上的50 x 50精灵大得多。 Android的资源分辨率算法旨在允许您定义更大(以像素为单位)的图像,以便在更高密度的屏幕上使用。
如果您希望精灵与屏幕的大小相同,无论像素密度如何,那么您可以将图像放在drawable-nodpi
文件夹中,但它们不会由系统缩放。在查询屏幕大小后,您甚至可以决定在代码中使用哪个大小的图像。 (从3.2开始,您可以拥有依赖于屏幕像素大小的资源文件夹,但我认为它们仍将使用dpi进行扩展。)
屏幕分辨率是指屏幕尺寸(以像素为单位)。像素密度是指填充一英寸屏幕所需的像素数。