尽管我已经阅读了 2 次,但我并不真正了解 DP 度量。
假设我有一张图像,它的分辨率是:400 X 400 PX。
我想把它作为我的应用程序的背景图片。我将相同的图像放在不同的可绘制文件夹(ldpi,mdpi,...)
图像会拉伸吗?我不知道图像在不同的可绘制文件夹上应该是什么分辨率,所以它适合设备。
尽管我已经阅读了 2 次,但我并不真正了解 DP 度量。
假设我有一张图像,它的分辨率是:400 X 400 PX。
我想把它作为我的应用程序的背景图片。我将相同的图像放在不同的可绘制文件夹(ldpi,mdpi,...)
图像会拉伸吗?我不知道图像在不同的可绘制文件夹上应该是什么分辨率,所以它适合设备。
你的基础密度是mdpi
。mdpi
因此,您的 400x400 dp 图像将仅在设备上按原样呈现。如果你想要相同的尺寸ldpi
,你必须将你的图像按比例缩放0.75
。对于hdpi
您的图像需要1.5
大几倍,对于xhdpi
设备来说,2.0
是您的mdpi
.
就像mdpi
你的基础一样,我总是在开发时将drawables放在res/drawable-mdpi
文件夹中。一旦我准备好发布代码,我就会将hdpi
资源添加到res/drawables-hdpi
. 我个人并不关心ldpi
设备,因为我的目标设备几乎没有比密度低的设备mdpi
,如果有人会拥有这样的设备,那么我对 android 框架进行缩减感到满意。但是升级是另一回事-您总是会得到不好的结果(模糊的图像),因为您根本无法在没有伪像的情况下从较小的位图制作更大的位图(不,CSI 谎言;)-您根本没有足够的数据,因此您必须进行推断。所以最好自己提供合适的drawables,否则你的最终用户会抱怨,你的应用程序可能看起来不像它应该的那么好。
这个想法是显示图像的实际物理尺寸将根据屏幕分辨率而有所不同。
在 mdpi 设备上,屏幕密度约为 1.5 dpi(每英寸点数),这意味着您的 400 像素宽图像将测量 2.5 英寸。
如果您希望图像在 hdpi 设备上的大小大致相同(例如 250 dpi),那么您必须提供 625 像素宽的图像(2.5*250)。您应将图像放入drawable-hdpi
文件夹中。
有关不同密度的说明,请参阅此页面。
在设计应在多个设备上运行的应用程序时,需要注意两个重要参数:
大小:android 中设备的大小不是定义为唯一的物理值,而是定义为一个范围。
它们是:小、正常、大和超大。
密度:密度也被定义为一个范围。
它们是:ldpi、mdpi、hdpi 和 xhdpi。
为了处理尺寸,您需要使用多个布局,每个类别的尺寸一个,并且您需要为每个布局的视图的高度和宽度使用不同的 dp 值,因为小型和大型设备的尺寸不会一样。
对于处理密度,您需要为不同的屏幕密度使用不同的绘图,即您需要将不同密度的绘图放置在不同的绘图文件夹中。
例如:
这些是特定可绘制对象的分辨率
这种分辨率变化的比率为 3:4:6:8(ldpi:mdpi:hdpi:xhdpi)
如需进一步阅读,您可以参考这个 android 开发者的链接:http:
//developer.android.com/guide/practices/screens_support.html