我知道 android 会根据它们的位置(-ldpi、-mdpi 等)选择可绘制对象。如果我有两组可绘制对象,一组用于 mdpi 和 ldpi,另一组用于 hdpi 和 xhdpi,我应该如何组织我的图像?
问问题
1638 次
1 回答
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;
}
于 2013-01-12T20:41:36.030 回答