4

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

我发现正如它在开发者网站上提到的,如果我们使用 dp,那么它会根据屏幕自动放大和缩小。但我没有得到想要的结果,并且图像没有为较小的设备正确缩放。

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

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

4

1 回答 1

2

首先,我认为使用“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; 
    } 
于 2012-06-23T07:50:29.537 回答