Android - 屏幕分辨率和屏幕密度

时间:2010-09-27 14:00:38

标签: android android-screen android-resolution

根据>中的管理资源(图像)。 Android 1.6版本,我们需要在Drawable-Hdpi,Drawable-Mdpi,Drawable-Lpi文件夹中保留不同分辨率的图像。

根据此页面:http://developer.android.com/guide/practices/screens_support.html

在低密度部分 - 使用三种分辨率:240 * 320,240x400,240x432用于小屏幕,普通屏幕,特别是大屏幕。

同样适用于中密度部分 - 使用三种分辨率:320x480,480x800,480x854用于小屏幕,普通屏幕,特别是大屏幕。

同样适用于高密度........

但我很困惑:

(1)我如何知道是使用小屏幕,普通屏幕还是大屏幕,我的意思是有什么方法可以知道吗?

(2)我如何知道我使用的是哪种密度?

(3)在Drawable-Hdpi,Drawable-Mdpi,Drawable-ldpi文件夹中,我们应该保留哪种分辨率的图像?

请分享你的知识。

3 个答案:

答案 0 :(得分:7)

有特定的Android API调用可以在运行时告诉您手机具有的密度和(小/大/正常)屏幕大小。但是,作为开发人员,我们根本不需要担心个别手机。我们需要做的就是在apk中使用ldpi / mdpi / hdpi资产和小/普通/大型布局。 Android内部处理所有内容。

不要忘记深入了解Android如何确定要使用的资产和别名here

答案 1 :(得分:3)

为什么你想知道实际的密度?这是Android的业务。但我确信有一种方法可以检索这些信息。

对于开发我把所有东西放在hdpi文件夹中。我也可以把所有东西放在一个普通的Drawable文件夹中。

在您发布时,您可以决定是否要为ldpi和mdpi提供已经缩小的资源。但是,这没有必要。

更新: Retrieve actual density with this classbest practices

更新2:我发现摩托罗拉有25分钟的视频讨论了所有这些问题:Working with multiple screens

答案 2 :(得分:1)

1)更改不同文件夹中布局的内容,即layout-small,layout-large等。现在在不同的模拟器中以不同的屏幕分辨率进行测试。

2)为了找出设备的密度,使用
Log.d("Density", "" + (getResources().getDisplayMetrics().density));

相关问题