Android отображает изображения динамически - PullRequest
1 голос
/ 15 декабря 2011

У меня есть куча изображений с именами 1.jpg, 2.jpg… и 56.jpg.У меня также есть значение _id в переменной, зависящее от того, какой элемент был выбран из предыдущего действия со списком.У меня есть следующий код для отображения изображения.

ImageView image = (ImageView) findViewById(R.id.headerimage);
image.setImageResource(R.drawable.image1);

Что я хотел бы сделать, это динамически отобразить изображение, которое соответствует значению _id, например.как то так?

ImageView image = (ImageView) findViewById(R.id.headerimage);
image.setImageResource(R.drawable.myID + ".jpg");

Как мне это сделать?

Ура,

Майк.

Ответы [ 2 ]

2 голосов
/ 15 декабря 2011

Да, вы можете сделать это.

Просто используйте Resouces.getIdentifier () .Имейте в виду, что эта реализация медленнее , что при использовании идентификатора и всегда проверяет, равен ли идентификатор ресурса 0 (это означает, что запрашиваемый ресурс не завершается.

Пример:

 View view = //...
 int number = //...      
 int resId = getIdentifier("files_"+number, "drawable", "com.my.project.package");
 view.setBackgroundResource(resId);
0 голосов
/ 15 декабря 2011

Насколько я знаю, ты не знаешь. У меня была похожая проблема некоторое время назад, вы можете найти ее здесь. По некоторым причинам, Android не нравится, если вы пытаетесь динамически ссылаться на имена ресурсов. В конце концов я исправил это, поместив все ресурсы, на которые я хотел динамически ссылаться, в массив.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...