在开发应用程序时,这就是我所做的: 1.Kept 320 * 480作为我的基本分辨率,160dpi作为我的基本密度。 2.保存drawable-mdpi文件夹中的所有图像 3.在指定xml布局中图像的宽度和高度时使用dp。
我所发现的就像它在开发者网站上所提到的那样,如果我们使用dp然后它会根据屏幕自动缩放并缩小比例。但是我没有得到理想的结果并且图像没有正确缩放更小的设备。
所以我做的是 1.在xml文件中创建布局 2.在运行时设置图像的宽度和高度,以屏幕宽度和高度的百分比表示 通过这样做,我得到了理想的结果。图像在所有设备上正确缩放,范围从小240 * 320到标签600 * 1024。
所以我的问题是,如开发人员网站中所提到的,我应该使用dp来指定宽度和高度,还是应该以编程方式进行。如果没有什么是dp的概念,我可以在哪里使用它?
答案 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;
}