根据>中的管理资源(图像)。 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文件夹中,我们应该保留哪种分辨率的图像?
请分享你的知识。
答案 0 :(得分:7)
有特定的Android API调用可以在运行时告诉您手机具有的密度和(小/大/正常)屏幕大小。但是,作为开发人员,我们根本不需要担心个别手机。我们需要做的就是在apk中使用ldpi / mdpi / hdpi资产和小/普通/大型布局。 Android内部处理所有内容。
不要忘记深入了解Android如何确定要使用的资产和别名here。
答案 1 :(得分:3)
为什么你想知道实际的密度?这是Android的业务。但我确信有一种方法可以检索这些信息。
对于开发我把所有东西放在hdpi文件夹中。我也可以把所有东西放在一个普通的Drawable文件夹中。
在您发布时,您可以决定是否要为ldpi和mdpi提供已经缩小的资源。但是,这没有必要。
更新: Retrieve actual density with this class和best practices
更新2:我发现摩托罗拉有25分钟的视频讨论了所有这些问题:Working with multiple screens
答案 2 :(得分:1)
1)更改不同文件夹中布局的内容,即layout-small,layout-large等。现在在不同的模拟器中以不同的屏幕分辨率进行测试。
2)为了找出设备的密度,使用
Log.d("Density", "" + (getResources().getDisplayMetrics().density));