在我正在处理的项目中,我尝试将“纹理”加载到图块中。“纹理”只不过是我的 Res 文件夹中的 *.png 文件。告诉我将图像和图块链接在一起的信息来自 SQLite 数据库。那里的问题是我将此信息作为字符串获取(例如 Rock.png)。如何从这个字符串获取资源 id (@drawable/rock)?
我的第一个猜测是编写一个带有巨大案例开关的类,我将它们连接在一起,但后来我得出结论,这将是相当静态的(如果不是完全迟钝的话)。所以一定有更好的方法,但直到现在我一直找不到它......
在我正在处理的项目中,我尝试将“纹理”加载到图块中。“纹理”只不过是我的 Res 文件夹中的 *.png 文件。告诉我将图像和图块链接在一起的信息来自 SQLite 数据库。那里的问题是我将此信息作为字符串获取(例如 Rock.png)。如何从这个字符串获取资源 id (@drawable/rock)?
我的第一个猜测是编写一个带有巨大案例开关的类,我将它们连接在一起,但后来我得出结论,这将是相当静态的(如果不是完全迟钝的话)。所以一定有更好的方法,但直到现在我一直找不到它......
您可以通过执行此操作获取资源 ID
int resourceID = MainActivity.this.getResources().getIdentifier(img, "drawable",
MainActivity.this.getPackageName());
在哪里
MainActivity ==> 您当前的活动
img ==> 不带扩展名的视图/drawable 名称,例如 (.png) 和 R.(id/string/color....)
drawable ==> “img”
MainActivity.this 的类型。 getPackageName() ==> 当前包名