查找资源ID

时间:2013-03-17 23:14:23

标签: android

在我正在研究的项目中,我尝试将“纹理”加载到图块。 'texture'只不过是我Res文件夹中的* .png文件。告诉我将图像和图块链接在一起的信息来自SQLite数据库。问题在于我将此信息作为字符串(例如Rock.png)。如何从此字符串获取资源ID(@ drawable / rock)?

我的第一个猜测是写了一个带有巨型案例开关的课程,我将它们连接在一起,但后来我得出的结论是,这将是相当静态的(如果不是完全延迟的话)。所以必须有一个更好的方法,但直到现在我一直无法找到它......

1 个答案:

答案 0 :(得分:2)

您可以通过执行此操作获取资源ID

int resourceID = MainActivity.this.getResources().getIdentifier(img, "drawable",
                     MainActivity.this.getPackageName());

,其中

<强> MainActivity ==&GT;您当前的活动
img ==&gt;没有扩展名的view / drawable名称,例如(.png)和R.(id / string / color ....)
可绘制 ==&GT;你的“img”的类型
MainActivity.this.getPackageName() ==&gt;当前包名称