Пользовательский XML со ссылками на доступные для рисования ресурсы - PullRequest
0 голосов
/ 07 марта 2011

У меня есть необработанный xml-ресурс, представляющий файл уровня.Я хочу сослаться на drawable в этом файле, но у меня нет хорошей идеи, как это сделать - потому что я действительно не знаю drawable id.Какой хороший способ сделать это?

Ответы [ 2 ]

5 голосов
/ 07 марта 2011

Предполагая, что у вас есть доступный для извлечения ресурс с известным вам именем файла, вы можете использовать имя файла и получить идентификатор, подобный следующему:

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

(через Как получить идентификатор ресурсаизображения, если я знаю его имя? )

(я вижу, что у меня совершенно другое понимание вашего вопроса, чем другой ответ: чтобы быть ясным: я предполагаю, что у вас естьXML, который вы сделали сами, представляющий уровень в игре. Таким образом, XML - это ваша личная вещь, а не android layout-xml, а 'level' - это тоже что-то специфическое для вашего приложения)

0 голосов
/ 07 марта 2011

Почему вы делаете это именно так?Если вы используете LevelListDrawable, он автоматически изменит чертеж при изменении уровня.Тем не менее, если вам действительно нужно получить Drawable от него, вы можете попробовать что-то вроде этого (например, вам нужно Drawable для уровня 3):

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);

Вероятно, есть более простой способ выполнить то, что вы 'пытаясь сделать, хотя, если вы можете уточнить.

...