我理解android根据其位置(-ldpi,-mdpi等)选择drawables。如果我有两套drawables,一组用于mdpi和ldpi,另一组用于hdpi和xhdpi,我应该如何组织我的图像?
答案 0 :(得分:0)
目前,我没有遇到分组 dpi文件夹的任何可能性。 但你仍然有选择:
虚拟抽奖:
将您的图片放入普通/drawable
文件夹,并将其命名为image1_low.png
和image1_high.png
。现在将“虚拟可绘制”文件image1_dummy.xml
放入您的/drawable-ldpi
和 /drawable-mdpi
文件夹中,其中包含以下内容:
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/image1_low" />
/drawable-hdpi
和 /drawable-xhdpi
个文件夹也是如此,但现在使用@drawable/image1_high
代替@drawable/image1_low
。
现在你可以参考假人的名字,例如由
getResources().getDrawable(R.drawable.image1_dummy);
以获得所需的drawable。
<强>的程序化:强>
您不仅限于使用文件夹,还有一种程序化方法(https://stackoverflow.com/a/5323437/1140682的信用):
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
switch(metrics.densityDpi){
case DisplayMetrics.DENSITY_XHIGH:
// assign your high-res version
break;
case DisplayMetrics.DENSITY_HIGH:
// assign your high-res version
break;
default:
// assign your low-res version
break;
}