Android: переменная передана для R.drawable.variableValue

iv.setImageResource(R.drawable.icon); 

Эта линия работает хорошо для меня

Могу ли я передать значение переменной вместо значка, например, если у меня есть 10 изображений в drawable, и я хочу решить, во время выполнения, какое изображение показывать, могу ли я передать значение через переменную и работать так, как

  String variableValue = imageName; iv.setImageResource(R.drawable.variableValue); 

Resource.getIdentifier () может решить вашу проблему.

 String variableValue = imageName; iv.setImageResource(getResources().getIdentifier(variableValue, "drawable", getPackageName())); 

Вы можете использовать массив для определения ваших чертежей:

 int[] images = new int[2]; images[0] = R.drawables.image1; images[1] = R.drawables.image2; 

И затем вы можете использовать этот массив для установки изображения во время выполнения:

 lv.setImageResource(images[i]); 

Где есть в этом случае либо 0, чтобы указать на первое изображение, либо 1, чтобы указать на второе изображение массива.

Нет, это не сработает.

В вашей первой строке icon – это сгенерированный static final член static final class R.drawable поэтому попытка его конкатенации, как и String , даст вам ошибку компилятора.

Но вы можете попробовать использовать

 iv.setImageURI(uri); 

Где uri – это URI для вашего изображения, поэтому здесь вы можете использовать строковое значение.
Кроме того, согласно документации api, было бы лучшим решением использовать setImageBitmap : вы должны рассмотреть его на основе ваших ресурсов.

APIDocs:

 public void setImageURI (Uri uri) 

С: API уровня 1

Устанавливает содержимое этого ImageView в указанный Uri.

Это делает чтение и декодирование растрового изображения в потоке пользовательского интерфейса, что может вызвать задержку икры. Если это вызывает беспокойство, подумайте об использовании setImageDrawable (Drawable) или setImageBitmap (Bitmap) и BitmapFactory.

параметры
Uri Ури изображения