【问题标题】:What is the difference between ImageView.setBackgroundResource and ImageView.setImageResource?ImageView.setBackgroundResource 和 ImageView.setImageResource 有什么区别?
【发布时间】:2011-11-05 12:09:00
【问题描述】:

我在设置图像时看到了这些不同的方法,但我不明白其中的区别。

为什么有两种方法?

【问题讨论】:

    标签: android image background imageview


    【解决方案1】:

    方法setBackgroundResource()属于所有View。方法setImageResource() 只属于ImageView。您可以同时设置它们:

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

    setBackgroundResource() 方法将导致图像的宽度和高度被拉伸以填充视图的大小。 setImageResource() 方法会使其图像保持其纵横比。

    我更完整的答案是here

    【讨论】:

      【解决方案2】:

      setBackgroundResource 设置 ImageView 的背景图像。 XML 属性为:android:background

      setImageResource 设置在 ImageView 中显示的图像。 XML 属性为:android:src

      【讨论】:

        【解决方案3】:

        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,剩余的边框将留空并显示背景。

        【讨论】:

        • 但是你需要设置一些填充还是什么?
        • 出于什么原因设置填充?将其视为两层:背景在后面,源充当前景。如果图像源不透明,您将无法看到背景。
        • 如果您希望 src 图像周围有一个白色边框,例如,您可以设置 imageview 的填充并设置白色作为背景资源。否则不需要填充。
        【解决方案4】:

        SetBackdroundResource 用于要在图像视图的背景中设置的可绘制对象或颜色,并且您的 setImageResource 就像显示在其上。

        所以 setImageResource 用于将任何资源添加到您的 imageview 的前端。试试这个例子,看看有什么不同。 Android Gallery, ImageView Example 。这是一个两层效果,背面(setBackgroundResource)和正面(setImageResource)。

        【讨论】:

        • 您与“androidpeople.com”的链接已失效。但我可以想象你所说的“两层效果”是什么意思。谢谢!
        猜你喜欢
        • 2010-10-02
        • 2011-12-12
        • 2010-09-16
        • 2012-03-14
        • 2012-02-06
        • 2011-02-25
        • 2011-11-22
        • 2015-03-26
        • 2013-08-19
        相关资源
        最近更新 更多