В чем разница между ImageView.setBackgroundResource и ImageView.setImageResource? - PullRequest
16 голосов
/ 28 августа 2011

Я видел эти разные подходы в настройке изображений, но я не вижу разницы.

Почему существует два метода?

Ответы [ 4 ]

40 голосов
/ 28 августа 2011

setBackgroundResource - для установки фона ImageView.
setImageResource - для настройки исходного изображения ImageView.Дано:

ImageView iv = new ImageView(this);

Тогда:

iv.setBackgroundResource(R.drawable.imagedata);

Подойдет изображение для всего фона.Это означает, что оно растянет изображение, чтобы полностью заполнить этот фон, даже если размер изображения слишком мал.

imageView.setImageResource(R.drawable.imagedata);

Занимает только размер изображения в ImageView.Для этого вы также хотите установить

android:layout_width="wrap_content"
android:layout_height="wrap_content"

для вашего ImageView.Если размер изображения меньше, чем ImageView, оставшаяся рамка останется пустой и будет показан фон.

3 голосов
/ 28 августа 2011

SetBackdroundResource предназначен для рисования или цвета, который вы хотите установить на фоне изображения, и ваш setImageResource похож на него

поэтому setImageResource предназначен для добавления любого ресурса на лицевую сторону вашего изображения. попробуйте этот пример и посмотрите на разницу. Галерея Android, пример ImageView . Это двухслойный эффект: обратная сторона (setBackgroundResource) и внешняя сторона (setImageResource).

2 голосов
/ 06 апреля 2018

Метод setBackgroundResource() принадлежит всем представлениям. Метод setImageResource() относится только к ImageView. Вы можете установить их обоих:

imageView.setBackgroundResource(R.drawable.sky);
imageView.setImageResource(R.drawable.balloons);

enter image description here

Метод setBackgroundResource() приведет к тому, что ширина и высота изображения будут растянуты до размера изображения. Метод setImageResource() позволит его изображению сохранять соотношение сторон.

Мой более полный ответ здесь .

0 голосов
/ 30 декабря 2017

setBackgroundResource устанавливает фоновое изображение ImageView.Атрибут XML: android:background

setImageResource устанавливает изображение, отображаемое в ImageView.Атрибут XML: android:src

...