我在设置图像时看到了这些不同的方法,但我没有区别。
为什么有两种方法?
答案 0 :(得分:40)
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,则剩余的边框将留空,并显示背景。
答案 1 :(得分:3)
SetBackdroundResource用于您想要在imageview的背景设置的可绘制颜色或颜色,并且您的setImageResource就像要在其上显示。
所以setImageResource用于向imageview的正面添加任何资源。尝试这个例子,看看差异。 Android Gallery, ImageView Example 。这是一个两层效果,backside(setBackgroundResource)和frontside(setImageResource)。
答案 2 :(得分:2)
方法setBackgroundResource()
属于所有视图。方法setImageResource()
仅属于ImageView
。你可以设置它们:
imageView.setBackgroundResource(R.drawable.sky);
imageView.setImageResource(R.drawable.balloons);
setBackgroundResource()
方法会导致图片的宽度和高度被拉伸以填充视图的大小。 setImageResource()
方法会让其图像保持宽高比。
我更全面的回答是here。
答案 3 :(得分:0)
setBackgroundResource
设置ImageView的背景图像。 XML属性为:android:background
setImageResource
设置ImageView中显示的图像。 XML属性为:android:src