自定义xml,引用可绘制资源

时间:2011-03-07 18:24:23

标签: android xml resources drawable

我有一个表示级别文件的原始xml资源。我想在这个文件中引用一个drawable但我不知道怎么做 - 因为我真的不知道一个drawable id。有什么好办法呢?

2 个答案:

答案 0 :(得分:5)

假设您有一个具有您知道的文件名的可绘制资源,您可以使用文件名,并获取如下所示的ID:

String mDrawableName = "stringFromXML";
int resID = getResources().getIdentifier(mDrawableName , "drawable", getPackageName());

(通过How do I get the resource id of an image if I know its name?

(我看到我对你的问题有了完全不同的理解,然后是另一个答案:要明确:我假设你自己创建了一个XML,代表游戏中的一个级别。所以XML是你的个人事物,而不是android layout-xml,'level'也是你的应用程序特有的东西)

答案 1 :(得分:0)

你为什么这样做呢?如果您正在使用LevelListDrawable,它将在级别更改时自动更改drawable。也就是说,如果你真的需要从中得到Drawable,你可以尝试这样的东西(例如你需要3级的drawable):

ImageView iv = (ImageView)findViewById(R.id.imageview);
LevelListDrawable lld = (LevelListDrawable)iv.getDrawable();
int temp = lld.getLevel();
lld.setLevel(3);
Drawable d = lld.getCurrent();
lld.setLevel(temp);

如果你能详细说明的话,可能有一种更简单的方法来完成你想要做的事情。