安卓屏幕尺寸的 HDPI、LDPI、MDPI 是什么意思?

118

我有一个需要适配所有屏幕尺寸的背景。我有三个文件夹,hdpildpimdpi 用于绘制可伸缩图片,但在模拟器中没有任何参考说明什么是hdpi分辨率,以及mdpildpi分别是什么。

4个回答

141

您应该阅读 支持多个屏幕。 您必须在模拟器上定义dpi。 240是hdpi,160是mdpi,低于此的通常是ldpi。

从上面链接的Android开发者指南中提取:

320dp: a typical phone screen (240x320 ldpi, 320x480 mdpi, 480x800 hdpi, etc).  
480dp: a tweener tablet like the Streak (480x800 mdpi).  
600dp: a 7” tablet (600x1024 mdpi).  
720dp: a 10” tablet (720x1280 mdpi, 800x1280 mdpi, etc).

1
我将图片放在hdpi、ldpi和mdpi文件夹中,但当我运行QVGA模拟器时,它必须使用ldpi,但会调整我的hdpi图像,这样看起来不如应该的好。 - artouiros
这个QVGA模拟器的屏幕分辨率是多少? - evilone
1
我是指屏幕像素尺寸。 - evilone
这个有问题吗?我有一部相当老的HTC手机,大小正常,但它的DPI为480。它不是平板电脑。 - Jonny

78

更新日期:2014年7月30日

如果您使用的是Android Studio,请确保您至少具有144x144像素的资源,然后使用“文件-新建-图像资产”。Android Studio将为您创建适当的图像文件,以便放置在各个文件夹中:)


文档所示,请按照以下方式调整位图:

几乎每个应用程序都应该为不同的屏幕密度提供替代的可绘制资源,因为几乎每个应用程序都有一个启动器图标,该图标应在所有屏幕密度上显示良好。同样,如果您在应用程序中包含其他位图可绘制对象(例如菜单图标或应用程序中的其他图形),则应为每个不同密度提供其替代版本。

注意:您只需要为位图文件(.png、.jpg 或 .gif)和 Nine-Path 文件(.9.png)提供特定于密度的可绘制对象。如果您使用 XML 文件来定义形状、颜色或其他可绘制资源,则应将一份副本放在默认的 drawable 目录(drawable/)中。

要为不同的密度创建替代位图可绘制对象,应遵循四个广义密度之间的3:4:6:8缩放比例。例如,如果您具有一个中等密度屏幕(启动器图标的大小)为48x48像素的位图可绘制对象,则所有不同大小的位图可绘制对象应如下:

36x36 用于低密度 (LDPI)

48x48 用于中密度 (MDPI)

72x72 用于高密度 (HDPI)

96x96 用于超高密度 (XHDPI)

144x144 用于超超高密度 (XXHDPI)

192x192 用于超超超高密度 (XXXHDPI)


2
@Michal:根据这个链接(http://developer.android.com/guide/practices/screens_support.html),XXHDPI应该是180x180,缺失的XXXHDPI应该是192x192。 - ChuongPham
谢谢。我搜索了很多,这对我很有帮助。+1 - Mohammad
36x36、48x48、72x72 这些都是像素吗?所以如果我想要创建图标,它的宽度和高度应该为 36 像素 X 36 像素吗? - HIRA THAKUR
@LeonardoDaCodinchi 是的。我建议你阅读https://dev59.com/A3I-5IYBdhLWcg3wEELu#2025541 - James Vickery
@FaisalAshraf 我也曾经这样想过,现在我很困惑! - Emil
显示剩余2条评论

9

这份文档在确定性解决方案方面相当简略。经过一些研究,我找到了以下解决方案:Android启动画面图片尺寸适配所有设备

虽然这个方案主要针对启动画面设计,但同样适用于应占满整个屏幕的图片。


8

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接