Android ImageView setImageResource в коде
У меня есть imageView, который я хочу отобразить в небольшом значке страны, в которой вы сейчас находитесь. Я могу получить код страны, но проблема в том, что я не могу динамически изменять ресурс imageView. Мои файлы изображений все строчные (Пример: код страны = США, файл изображения = нас)
Мой код (countryCode - это текущий код страны заглавными буквами):
String lowerCountryCode = countryCode.toLowerCase();
String resource = "R.drawable." + lowerCountryCode;
img.setImageResource(resource);
Теперь, конечно, это не сработает, потому что setImageResource хочет int, поэтому как я могу это сделать?
Спасибо заранее: D
Ответы
Ответ 1
Один простой способ сопоставить имя этой страны, которое вы должны использовать int
для использования в методе setImageResource
:
int id = getResources().getIdentifier(lowerCountryCode, "drawable", getPackageName());
setImageResource(id);
Но вы действительно должны пытаться использовать разные ресурсы папок для стран, которые вы хотите поддержать.
Ответ 2
Настройка изображения в ImageView
с помощью метода setImageResource()
:
ImageView myImageView = (ImageView)v.findViewById(R.id.img_play);
// supossing to have an image called ic_play inside my drawables.
myImageView.setImageResource(R.drawable.ic_play);
Ответ 3
вы используете этот код
ImageView[] ivCard = new ImageView[1];
@override
protected void onCreate(Bundle savedInstanceState)
ivCard[0]=(ImageView)findViewById(R.id.imageView1);
Ответ 4
вы можете попробовать следующее: -
myImgView.setImageDrawable(getResources().getDrawable(R.drawable.image_name));