Android drawables:有没有办法以某种方式将int ID与R drawableID链接起来



我在drawable-mdpidrawable-hdpidrawable-xhdpi文件夹中有718个可绘制对象,它们的名称分别为1.png、2.png…到718.png。(它们实际上是神奇宝贝精灵)

因此,根据神奇宝贝的不同,我想加载其中一个来显示它。然而,我不能使用数字直接识别R可提取ID。

除了718大小写开关或Hashmap<Integer,Integer>之外,还有什么方法可以将int ID与R可绘制ID链接起来吗?

您可以尝试:

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

drawable是图像所在的文件夹。number是所需图像的编号。例如1.png

Drawables命名为image_1.png..到..image_718.png.

使用getIdentifier,您可以获得这样的可提取资源Id。

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

使用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

最新更新