支持android分辨率屏幕:理解

时间:2012-08-31 14:57:41

标签: android image resolution dpi

即使我已经读了2次,我也不太了解DP测量。

假设我有一张图像,它的分辨率是:400 X 400 PX。

我想将它作为背景图片添加到我的应用中。 我将相同的图像放在不同的可绘制文件夹(ldpi,mdpi,...)

图像会拉伸吗?我不知道图像应该在不同的可绘制文件夹上的分辨率,以便它适合设备。

3 个答案:

答案 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。

enter image description here

对于处理大小,您需要使用多个布局,每个类型对应一个大小,并且您需要为每个布局使用不同的dp值作为视图的高度和宽度,因为小型和大型设备的大小不会一样的

为了处理密度,您需要针对不同的屏幕密度使用不同的抽屉,即您需要在不同的可绘制文件夹中放置不同的密度抽屉。 例如:
这些是特定可绘制的分辨率

  • 低密度36x36(置于drawable-ldpi)
  • 中等密度48x48(置于drawable-mdpi)
  • 72x72用于高密度(放置在drawable-hdpi中)
  • 96x96,用于超高密度(置于drawable-xhdpi)

此分辨率变化的比率为3:4:6:8(ldpi:mdpi:hdpi:xhdpi)

有关进一步阅读,请参阅此Android开发人员的链接:
http://developer.android.com/guide/practices/screens_support.html