关于android中DP使用的问题?
在开发应用程序时,我就是这么做的: 1.保留320*480作为我的基本分辨率,160dpi作为我的基本密度。 2.将所有图像保存在drawable mdpi文件夹中 3.在xml布局中指定图像的宽度和高度时使用dp 我发现,正如开发者网站上提到的,如果我们使用dp,它会根据屏幕自动放大和缩小。但我没有得到预期的结果,图像也没有针对较小的设备进行适当的缩放 所以我所做的是 1.在xml文件中创建布局 2.以屏幕宽度和高度的百分比设置运行时图像的宽度和高度 通过这样做,我得到了期望的结果。图像在所有设备上都进行了适当的缩放,范围从240*320到600*1024关于android中DP使用的问题?,android,android-layout,Android,Android Layout,在开发应用程序时,我就是这么做的: 1.保留320*480作为我的基本分辨率,160dpi作为我的基本密度。 2.将所有图像保存在drawable mdpi文件夹中 3.在xml布局中指定图像的宽度和高度时使用dp 我发现,正如开发者网站上提到的,如果我们使用dp,它会根据屏幕自动放大和缩小。但我没有得到预期的结果,图像也没有针对较小的设备进行适当的缩放 所以我所做的是 1.在xml文件中创建布局 2.以屏幕宽度和高度的百分比设置运行时图像的宽度和高度 通过这样做,我得到了期望的结果。图像在所有
因此,我的问题是,正如开发者网站中提到的,我应该使用dp来指定宽度和高度,还是应该通过编程来实现。如果没有,dp的概念是什么,我可以在哪里使用它?首先,我认为使用“dp”是好的。这没有问题 其次,为了解决您提到的问题,最好的方法是将适当大小的图像放入ldpi、hdpi和xhdpi文件夹中。这样就不必动态调整布局 LDPI:MDPI:HDPI:XHDPI中图像大小的比率=3:4:6:8 或者,您可以通过以下方式动态预测设备的大小,然后相应地设置布局:
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;
}
这是我自己一直在想的事情。我还没有掌握图像以及它们在Android中的显示方式。我无法将所有图像保存在相应的文件夹中,因为我有很多图像,而且这不是我正在寻找的解决方案。我想要的是,我应该有一个或两个布局,图像最多应该保存在两个文件夹中,我的布局和图像应该在每个设备上缩放。然后您可以动态预测设备的大小,并相应地设置布局(图像的放置和缩放)。我已经编辑了答案。