我在drawable-mdpi
,drawable-hdpi
和drawable-xhdpi
个文件夹中有718个drawable,其名称为1.png,2.png ...到718.png。 (他们实际上是神奇宝贝的精灵)
所以,根据神奇宝贝,我想加载其中一个以显示它。但是,我无法使用该号码直接识别R可绘制ID。
有什么方法(除了718案例开关或Hashmap<Integer,Integer>
)以某种方式将int ID链接到R可绘制ID?
答案 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