Android drawables:有没有办法以某种方式将int ID链接到R drawable ID?

时间:2014-04-19 22:00:24

标签: android android-drawable android-resources

我在drawable-mdpidrawable-hdpidrawable-xhdpi个文件夹中有718个drawable,其名称为1.png,2.png ...到718.png。 (他们实际上是神奇宝贝的精灵)

所以,根据神奇宝贝,我想加载其中一个以显示它。但是,我无法使用该号码直接识别R可绘制ID。

有什么方法(除了718案例开关或Hashmap<Integer,Integer>)以某种方式将int ID链接到R可绘制ID?

3 个答案:

答案 0 :(得分:1)

你可以尝试:

String sprite = "drawable/"+number; 
int imageResource = getResources().getIdentifier(sprite, null, getPackageName());

drawable是图片所在的文件夹。number是您想要的图片编号。例如1.png

答案 1 :(得分:0)

Drawables命名为image_1.png ..to .. image_718.png。

使用getIdentifier,您可以获得这样的可绘制资源ID。

int resourceId = getResources().getIdentifier("image_1", "drawable", getPackageName()); 

答案 2 :(得分:0)

使用TypedArray定义数组资源中的图像。然后你可以加载资源并获取资源作为抵消。它将比使用getIdentifier()快得多。请注意,我添加了0.png drawable,因此数组索引将与您的数值匹配。

<?xml version="1.0" encoding="utf-8"?>
<resources>
<array name="icons">
    <item>@drawable/0</item>
    <item>@drawable/1</item>
    <item>@drawable/2</item>
    <item>@drawable/3</item>
</array>
</resources>

然后在你的代码中:

 Resources res = getResources();
 TypedArray sprites = res.obtainTypedArray(R.array.icons);
 Drawable drawable = sprites.getDrawable(1);  

以下是提供背景资源的资源链接:http://developer.android.com/guide/topics/resources/more-resources.html