Android安卓中View的src与background区别分析

版权声明: https://blog.csdn.net/wq6ylg08/article/details/90106199

前沿背景

background会根据ImageView组件给定的长宽进行不按照长宽比拉伸/压缩直到填满布局的layout_height和layout_width,而src就存放的是原图的大小,不会进行拉伸。src是图片内容(前景),bg是背景,可以同时使用,同时使用则src在前面,background在后,src会遮住background.

1、android:background属性

(1) 该属性为大部分View公用属性,如Button,ImageView,TextView都可设置
(2)该属性既可为View设置图片,又可为图片也可以为颜色值。
(1.1)若background设置的是图片
宽或高设置为match_parent或者固定值(layout_height和layout_width为固定值),那么该图片会被不按照长宽比拉伸/压缩直到填满整个ImageView区域。
宽或高设置为wrap_content,那么图片按照自身大小显示,不会被拉伸。

(2.1)若background设置为颜色值,那么View整个区域都会被该颜色值填充。
当View仅设置背景颜色而没设置src,且宽或者高被设置为wrap_content时,则该View将不会显示。
(3)background会根据ImageView组件给定的长宽进行不按照长宽比 拉伸/压缩 直到填满布局的layout_height和layput_width
(4)src是图片内容(前景),background是背景,同时使用则src在前面,background在后,src会遮住background.

2、android:src属性

(1) 该属性为ImageView独有的属性,如Button, TextView都不可设置
(2)当ImageView没有指定scaleType时,则默认的scaleType类型为FIT_CENTER
(3)该属性为ImageView设置图片,也可以为颜色值。
(3.1)设置为颜色值时其表现同background,ImageView整个区域都会被该颜色值填充。
当View仅设置背景颜色而没设置src,且宽或者高被设置为wrap_content时,则该ImageView将不会显示。
(3.2)设置为图片时,src属性的表现形式会受到ImageView大小和scaleType属性和控件layout_height,layout_width的共同影响,所以其使用更加灵活。通过查看ImageView的setScaleType方法,可以了解scaleType的取值有如下8种枚举值:
MATRIX,FIT_XY,FIT_START,FIT_CENTER,FIT_END,CENTER,CENTER_CROP,CENTER_INSIDE

  1. android:scaleType=”center”
    (1) 当原图的长宽都小于等于ImageView的长宽,保持原图的大小,显示在ImageView的中心。
    (2)当原图的长宽至少有一个大于ImageView的长宽,保持原图的大小,显示在ImageView的中心超过部分裁剪处理。
    2.android:scaleType=”centerCrop”
    以填满整个ImageView为目的,将原图的中心对准ImageView的中心,长宽等比例缩放(缩小/放大)原图,使宽或者高其中之一要等于ImageView的宽或者高其中之一,而另一则要大于等于ImageView对应的另一,然后从居中部分截取图片填充ImageView。
    在这里插入图片描述
    3.android:scaleType=”centerInside”
    以原图完全显示为目的,将图片的内容完整居中显示,长宽等比例缩小,使宽或者高其中之一要等于ImageView的宽或者高其中之一,而另一则要小于等于ImageView对应的另一。
    如果原图的长宽本身就都小于ImageView的长宽,则原图的长宽不作任何处理,居中显示在ImageView。
    在这里插入图片描述
    4.android:scaleType=”matrix” matrix n.矩阵
    不改变原图的大小和长宽比,从ImageView的左上角开始绘制原图,原图超过ImageView的部分作裁剪处理。
    5.android:scaleType=”fitStart”
    以原图完全显示为目的,把原图按长宽等比例缩放(缩小/放大)直到宽或者高其中之一要等于ImageView的宽或者高其中之一,而另一则要小于等于ImageView对应的另一,同时与ImageView的左边和上边对齐。
    6.android:scaleType=”fitCenter”
    以原图完全显示为目的,把原图按长宽等比例缩放(缩小/放大)直到宽或者高其中之一要等于ImageView的宽或者高其中之一,而另一则要小于等于ImageView对应的另一,在ImageView居中显示
    7.android:scaleType=”fitEnd”
    以原图完全显示为目的,把原图按长宽等比例缩放(缩小/放大)直到宽或者高其中之一要等于ImageView的宽或者高其中之一,而另一则要小于等于ImageView对应的另一,与ImageView的右边和下边对齐
    8.android:scaleType=”fitXY”
    把原图按照指定的大小在View中显示,拉伸显示图片,不保持原长宽等比例,填满ImageView,等价于background的不按照长宽比拉伸/压缩直到填满
    在这里插入图片描述
    在这里插入图片描述
    本文参考来源:
    [1]https://blog.csdn.net/u012702547/article/details/50586946

猜你喜欢

转载自blog.csdn.net/wq6ylg08/article/details/90106199
今日推荐