我是Android开发领域的新手,我正在努力使我的应用程序适应每一种解决方案。我最近听说了dip的概念,但我不明白这个单元的用途。我得到,它允许显示的东西具有相同的物理大小,无论屏幕分辨率。
但问题是它不适用于不同的屏幕密度。我的意思是,如果我定义一个宽度为80 with的图像,那么在160 and屏幕和320 and屏幕上的结果就不一样了。因此,如果我每次都要编写一些代码来使组件适应于设备,那么我并不能真正达到这个单元的目的。
我如何在xml中定义布局(如果没有代码,就不应该需要:/ ),这样每个设备上的这个视图都是相同的(或几乎)。
我真的不明白为什么不能在布局(xml)中使用百分比,而不可能使用这样的单元。
非常感谢你的帮助。
PS :对不起我的英语:(
发布于 2013-10-01 21:57:54
dip (也称为dp)的思想是具有相同大小的虚拟像素,而不考虑显示器的物理像素密度。
1 1dp =1像素,160像素/英寸(中等密度显示器-mdpi)
在较高的像素密度下,1dp是一个以上的物理像素,而在较低的密度下,需要多个1dp才能达到一个物理像素的大小。
如果您在px中指定大小,那么您将指定物理像素,并且在高密度设备上相同的对象将看起来更小。
图像通常根据找到它们的资源文件夹进行缩放。如果您将.png文件放入/res/drawable中,则系统假定它的大小适合mdpi--显示密度为160个像素/英寸。如果实际显示碰巧是240像素/英寸(hdpi),系统在加载图像时将自动缩放1.5倍(= 240 / 160)。结果是,图像将在所有屏幕密度上以相同的物理尺寸显示。
您可以使用特定于密度的资源文件夹(/res/drawable-mdpi、/res/drawable-hdpi等)为不同的密度提供不同的图形;这通常是在系统缩放降低图像质量时进行的。您还可以在/res/drawable-nodpi中放置图形以抑制这种缩放。
有关更多信息,请阅读教程支承密度
https://stackoverflow.com/questions/19126676
复制相似问题