【发布时间】:2011-11-05 12:09:00
【问题描述】:
我在设置图像时看到了这些不同的方法,但我不明白其中的区别。
为什么有两种方法?
【问题讨论】:
标签: android image background imageview
我在设置图像时看到了这些不同的方法,但我不明白其中的区别。
为什么有两种方法?
【问题讨论】:
标签: android image background imageview
方法setBackgroundResource()属于所有View。方法setImageResource() 只属于ImageView。您可以同时设置它们:
imageView.setBackgroundResource(R.drawable.sky);
imageView.setImageResource(R.drawable.balloons);
setBackgroundResource() 方法将导致图像的宽度和高度被拉伸以填充视图的大小。 setImageResource() 方法会使其图像保持其纵横比。
我更完整的答案是here。
【讨论】:
setBackgroundResource 设置 ImageView 的背景图像。 XML 属性为:android:background
setImageResource 设置在 ImageView 中显示的图像。 XML 属性为:android:src
【讨论】:
setBackgroundResource用于设置ImageView的背景。setImageResource用于设置ImageView的src图像。
给定:
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,剩余的边框将留空并显示背景。
【讨论】:
SetBackdroundResource 用于要在图像视图的背景中设置的可绘制对象或颜色,并且您的 setImageResource 就像显示在其上。
所以 setImageResource 用于将任何资源添加到您的 imageview 的前端。试试这个例子,看看有什么不同。 Android Gallery, ImageView Example 。这是一个两层效果,背面(setBackgroundResource)和正面(setImageResource)。
【讨论】: