динамический источник изображения android

#android

#Android

Вопрос:

Я пытаюсь сделать изображения динамическими в своем приложении для Android. С помощью других сообщений я написал этот код, но я не могу установить ресурс изображения. Вот мой код.

 // get image whose source i want to change..
ImageView IV = (ImageView) findViewById(R.id.imageView1);

// x for 1,2,3.. hangman1.png,hangman2.png and so on image are located
// under res/drawable-mdpi
int j = getResources().getIdentifier("hangman" x, "imageView", getPackageName());

// here i get errork, The method setImageResource(int) in the type ImageView 
// is not applicable for the arguments (Drawable)
IV.setImageResource( getResources().getDrawable(j) );
  

Ответ №1:

 int j = getResources().getIdentifier("hangman" x, "drawable", getPackageName());
  

попробуйте это, если вы пытаетесь получить чертеж. а также, как сказал kcoppock, просто используйте j.

Комментарии:

1. Да, вам нужно указать тип ресурса. Как и в R.drawable.hangman1 : тип drawable не imageView является .

Ответ №2:

Потому что вы пытаетесь передать в Drawable. getDrawable(), как указано в его названии, возвращает объект, который можно нарисовать. setImageResource принимает идентификатор ресурса, который возвращает getIdentifier. Вы должны просто перейти j к setImageResource() .

Редактировать: Хех, и вы также должны использовать ответ Яшванта, как он сказал. 🙂

(КОМАНДНАЯ РАБОТА!)

Комментарии:

1. я уже пробовал IV.setImageResource( j); ошибка исчезает, но изображение не меняется .. 🙁

Ответ №3:

объединение обоих вышеуказанных решений помогло мне .. вот код .. dnt знает, какой ответ я должен принять..

 ImageView IV = (ImageView) findViewById(R.id.imageView1);
int j = getResources().getIdentifier("hangman" x, "drawable", getPackageName());
IV.setImageResource( j );
  

Комментарии:

1. Он также опередил меня на 16 секунд.

2. 1 в течение 16 секунд ..lol… хорошо, я приму его ответ .. спасибо 🙂

Ответ №4:

в вашем XML-файле используйте app:src вместо android:background, а в файле activity используйте :

 setImageDrawable(getRessource().getDrawable(R.drawable.yourRessource));