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