如何正确组织android可绘制资源?

时间:2013-01-12 19:29:56

标签: android android-resources

我理解android根据其位置(-ldpi,-mdpi等)选择drawables。如果我有两套drawables,一组用于mdpi和ldpi,另一组用于hdpi和xhdpi,我应该如何组织我的图像?

1 个答案:

答案 0 :(得分:0)

目前,我没有遇到分组 dpi文件夹的任何可能性。 但你仍然有选择:

虚拟抽奖:

将您的图片放入普通/drawable文件夹,并将其命名为image1_low.pngimage1_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;
}