在xhdpi设备上使用xxhdpi

时间:2019-05-01 10:46:23

标签: android drawable dpi

我创建了自己的应用,以支持从hdpixxxdpi的屏幕,并且一切运行正常。图像的显示与预期的一样。但是,现在我遇到了小米Max 3的问题。它具有6,9英寸的显示屏,分辨率仅为1080x2160,可提供〜350 dpi。属于xhdpi类别(通常为{{ 1}}屏幕上显示的图片,现在我的图片比原来的要小。有什么方法可以强制使用带有代码的720p文件夹?

2 个答案:

答案 0 :(得分:0)

只需创建另一个文件,例如:

drawable-xxxdpi / example.png

drawable-anydpi-v21 / example.xml

并从anydpi xml代码链接您的图像文件,以支持每种屏幕尺寸。 查看官方网站上的更多信息或访问What Is The Difference Between -anydpi And -nodpi?

答案 1 :(得分:0)

好的,感谢阿卜杜拉夫人,我找到了解决方案。 您无法选择要使用的资源文件夹,但是可以通过getDrawableForDensity()方法使用文件夹中的特定资源。这就是我所做的:

int width = Resources.getSystem().getDisplayMetrics().widthPixels;
int dpi = getResources().getDisplayMetrics().densityDpi;
int imageID = R.drawable.YOURIMAGE;
if (width > VALUE && dpi < VALUE) {
    if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) {
        Drawable drawable = getResources().getDrawableForDensity(imageId, DisplayMetrics.DENSITY_XXHIGH);
//you will probably need to adjust width & height of your ImageView, but since the image
//will keep its aspect ratio, you only have to change width | heigth
        YOURIMAGEVIEW.setAdjustViewBounds(true);
        YOURIMAGEVIEW.setMaxWidth(VALUE);
        YOURIMAGEVIEW.setImageDrawable(drawable);
   }
}