Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
关于android中DP使用的问题?_Android_Android Layout - Fatal编程技术网

关于android中DP使用的问题?

关于android中DP使用的问题?,android,android-layout,Android,Android Layout,在开发应用程序时,我就是这么做的: 1.保留320*480作为我的基本分辨率,160dpi作为我的基本密度。 2.将所有图像保存在drawable mdpi文件夹中 3.在xml布局中指定图像的宽度和高度时使用dp 我发现,正如开发者网站上提到的,如果我们使用dp,它会根据屏幕自动放大和缩小。但我没有得到预期的结果,图像也没有针对较小的设备进行适当的缩放 所以我所做的是 1.在xml文件中创建布局 2.以屏幕宽度和高度的百分比设置运行时图像的宽度和高度 通过这样做,我得到了期望的结果。图像在所有

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

我发现,正如开发者网站上提到的,如果我们使用dp,它会根据屏幕自动放大和缩小。但我没有得到预期的结果,图像也没有针对较小的设备进行适当的缩放

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


因此,我的问题是,正如开发者网站中提到的,我应该使用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中的显示方式。我无法将所有图像保存在相应的文件夹中,因为我有很多图像,而且这不是我正在寻找的解决方案。我想要的是,我应该有一个或两个布局,图像最多应该保存在两个文件夹中,我的布局和图像应该在每个设备上缩放。然后您可以动态预测设备的大小,并相应地设置布局(图像的放置和缩放)。我已经编辑了答案。