在我正在研究的项目中,我尝试将“纹理”加载到图块。 'texture'只不过是我Res文件夹中的* .png文件。告诉我将图像和图块链接在一起的信息来自SQLite数据库。问题在于我将此信息作为字符串(例如Rock.png)。如何从此字符串获取资源ID(@ drawable / rock)?
我的第一个猜测是写了一个带有巨型案例开关的课程,我将它们连接在一起,但后来我得出的结论是,这将是相当静态的(如果不是完全延迟的话)。所以必须有一个更好的方法,但直到现在我一直无法找到它......
答案 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;当前包名称