Android基础篇 AppCompatImageView中设置src和background的区别

Posted 彭老希

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android基础篇 AppCompatImageView中设置src和background的区别相关的知识,希望对你有一定的参考价值。

AppCompatImageView中的background会根据ImageView组件给定的长宽进行拉伸,而src就存放的是原图的大小,不会进行拉伸。src是图片内容(前景),background是背景,可以同时使用。

一、XML布局设置

(1)设置src

<androidx.appcompat.widget.AppCompatImageView
        android:src="@mipmap/ic_launcher"
        android:layout_width="300dp"
        android:layout_height="200dp"/>

src 【前景】 效果图


(2)设置background,在src的基础上添加了background(背景)

<androidx.appcompat.widget.AppCompatImageView
        android:background="@color/colorPrimary"
        android:src="@mipmap/ic_launcher"
        android:layout_width="300dp"
        android:layout_height="200dp"/>

background(背景)效果图

橘黄色的框圈住的部分是background(背景)的实际覆盖范围,但因为还设置了前景的src部分,红色框部分遮挡了一部分背景的颜色。在实际开发中,我们可以通过src设置我们Adapter中的Item,background设置我们item选中效果的背景色选中状态框。

二、代码设置

(一)设置src(前景)

	    img_speed.setImageResource();
        img_speed.setImageBitmap();
        img_speed.setImageDrawable();
        img_speed.setImageURI();

(二)设置Background(背景)

	    img_speed.setBackgroundResource();
        img_speed.setBackground();
        img_speed.setBackgroundDrawable();
        img_speed.setBackgroundColor();

三、概念理解

在Android 6及以前的系统中,可以认为:

1、background是作为背景显示的,而src是作为内容填充显示的,可以被认为是前景。

2、background可以为控件设置图片或者颜色,设置的大小时match_parent 或者固定值时,该图片将会被拉伸以填充满整个控件.如果设置成wrap_content 时,则会显示原本的大小.上面的实例中,我们设置了 的长宽,因此该图片将会以填充的方式显示。

3、如果background设置为颜色值,那么整个区域都会被该颜色值填充。当仅仅设置了背景颜色而没有设置src,且宽或者高被设置为wrap_content时,则该View将不会显示。

4、使用background添加背景资源时,所添加的背景能够充满整个控件的大小,如果当前使用的资源不能够满足控件大小时,将会把当前资源自动进行拉伸以满足添加背景资源的需要。但是在使用src填充是,如果填充的资源没有固定的大小,那么src将会按照自己的方式将整个控件占满,不会考虑多层叠加的效果

以上是关于Android基础篇 AppCompatImageView中设置src和background的区别的主要内容,如果未能解决你的问题,请参考以下文章

Android之WIFI-基础篇NativeDaemonConnector分析

Android基础篇

Android热修复基础篇

Android热修复基础篇

android基础篇学习心得

Android绘图基础篇