有关在Android中使用DP的问题?

时间:2012-06-23 01:14:45

标签: android android-layout

在开发应用程序时,这就是我所做的: 1.Kept 320 * 480作为我的基本分辨率,160dpi作为我的基本密度。 2.保存drawable-mdpi文件夹中的所有图像 3.在指定xml布局中图像的宽度和高度时使用dp。

我所发现的就像它在开发者网站上所提到的那样,如果我们使用dp然后它会根据屏幕自动缩放并缩小比例。但是我没有得到理想的结果并且图像没有正确缩放更小的设备。

所以我做的是 1.在xml文件中创建布局 2.在运行时设置图像的宽度和高度,以屏幕宽度和高度的百分比表示 通过这样做,我得到了理想的结果。图像在所有设备上正确缩放,范围从小240 * 320到标签600 * 1024。

所以我的问题是,如开发人员网站中所提到的,我应该使用dp来指定宽度和高度,还是应该以编程方式进行。如果没有什么是dp的概念,我可以在哪里使用它?

1 个答案:

答案 0 :(得分:2)

首先,我认为使用“dp”是好的。这没有问题。

其次,为了解决您提到的问题,最好的方法是将合适大小的图像放在ldpi,hdpi和xhdpi文件夹中。然后您不必动态调整布局。

LDPI中的图像大小比率:MDPI:HDPI:XHDPI = 3:4:6:8

OR这是您可以动态预测设备大小然后相应地设置布局的方法:

    DisplayMetrics displayMetrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
    switch(displayMetrics.densityDpi){ 
        case DisplayMetrics.DENSITY_LOW: 
            //your layout for samll sized devices
            break; 
        case DisplayMetrics.DENSITY_MEDIUM: 
            //your layout for medium sized devices
            break; 
        case DisplayMetrics.DENSITY_HIGH: 
            //your layout for large sized devices
            break; 
    }