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

因此,根据神奇宝贝,我想加载其中一个进行展示。 但是,我不能使用该数字直接标识R可绘制ID。

有什么办法(除了718情况下的开关或Hashmap<Integer,Integer> )以某种方式将int ID链接到R drawable ID?

===============>>#1 票数:1 已采纳

您可以尝试:

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

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

===============>>#2 票数:0

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

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

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

===============>>#3 票数:0

使用TypedArray定义数组资源中的图像。 那么您可以加载资源并获取资源作为偏移量。 这将比使用getIdentifier()快得多。 请注意,我添加了一个0.png可绘制对象,因此数组索引将与您的数值匹配。

<?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

  ask by Charlie-Blake translate from so

未解决问题?本站智能推荐:

关注微信公众号