Как изменить образ ImageView?

Я только начал изучать Android. И я не знаю Как изменить изображение ImageView? т.е. он имеет некоторое изображение, которое было установлено в макете, но я хочу изменить это изображение с помощью кодирования, как я должен это делать?

Вот xml файл

<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:background="#cc8181"
 >

<ImageView
  android:id="@+id/image"
  android:layout_width="50dip"
  android:layout_height="fill_parent" 
  android:src="@drawable/icon"
  android:layout_marginLeft="3dip"
  android:scaleType="center"/>

спасибо за ответ.

Ответ 1

Если вы создали изображение с использованием файла xml, выполните следующие действия.

Решение 1:

Шаг 1. Создание файла XML

<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:background="#cc8181"
  >

  <ImageView
      android:id="@+id/image"
      android:layout_width="50dip"
      android:layout_height="fill_parent" 
      android:src="@drawable/icon"
      android:layout_marginLeft="3dip"
      android:scaleType="center"/>

</LinearLayout>

Шаг 2: создайте активность

ImageView img= (ImageView) findViewById(R.id.image);
img.setImageResource(R.drawable.my_image);

Решение 2:

Если вы создали образ из класса Java

ImageView img = new ImageView(this);
img.setImageResource(R.drawable.my_image);

Ответ 2

Посмотрите ImageView API. Существует несколько методов setImage*. Какой из них зависит от изображения, которое вы предоставляете. Если у вас есть изображение как ресурс (например, файл res/drawable/my_image.png)

ImageView img = new ImageView(this);  // or (ImageView) findViewById(R.id.myImageView);
img.setImageResource(R.drawable.my_image);

Ответ 3

Чтобы немного поработать над этим вопросом, вы также можете установить растровое изображение напрямую, например:

ImageView imageView = new ImageView(this);  
Bitmap bImage = BitmapFactory.decodeResource(this.getResources(), R.drawable.my_image);
imageView.setImageBitmap(bImage);

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

Ответ 4

if (android.os.Build.VERSION.SDK_INT >= 21) {
            storeViewHolder.storeNameTextView.setImageDrawable(context.getResources().getDrawable(array[position], context.getTheme()));
} else {
            storeViewHolder.storeNameTextView.setImageDrawable(context.getResources().getDrawable(array[position]));
}