Android中的Drawable(一)

PS:本文系转载文章,阅读原文可读性会更好,文章末尾有原文链接
【Android中的Drawable(一)】目录1、Drawable 的分类2、BitmapDrawable3、ShapeDrawable1、Drawable 的分类表示一种图像的概念,但是它们又不全是图片,也是可以通过颜色来构造出各式各样的图像的效果;我们使用最多的是 Drawable 被用来作为 View 的背景使用,Drawable 作为 View 的背景使用就有2种方式了,一种是通过 XML 布局文件来设置,一种是使用逻辑代码(Java语言、kotlin语言)给 View 设置 Drawable;Drawable 是一个抽象类,它是所有 Drawable 子类的基类,比如 BitmapDrawable、ShapeDrawable、LayerDrawable 和 StateListDrawable 等;好,我们看看这 BitmapDrawable、ShapeDrawable、LayerDrawable 和 StateListDrawable这几个类的声明;
Android中的Drawable(一)
文章图片




StateListDrawable 继承的 DrawableContainer 最终是继承 Drawable。2、BitmapDrawable讲 BitmapDrawable 的属性之前,我们先写一个 BitmapDrawable 的 demo;(1)在 drawable 文件夹下新建一个 bitmap.xml ;(2)Activity 的布局文件 activity_main.xml ; 程序运行结果如下所示;
Android中的Drawable(一)
文章图片

我们上面写的 demo 是通过 bitmap.xml 文件来描述 BitmapDrawable 的,下面我们一一列举描述 BitmapDrawable 的所用属性。android:src:表示图片的资源 id;android:antialias: 表示是否开启抗锯齿功能,true 表示已经开启,如果开启了抗锯齿,那么图片就会变得平顺起来,什么意思呢?就比如说,一张图片的边是呈波浪线的,如果开启了抗锯齿功能,那么图片的边就趋向于直线的。android:dither: 是否开启抖动效果,当图片的像素配置和手机屏幕的像素配置不一致时,开启这个选项可以让高质量的图片在低质量的屏幕上还能保持较好的显示效果。android:filter: 是否开启过滤效果;当图片尺寸被拉伸或者压缩时,开启过滤效果可以保持较好的显示效果。android:gravity: 当图片小于容器的尺寸时,设置此选项可以对图片进行定位。android:minMap: 这是一种图像相关的处理技术,也叫纹理映射,默认值为 false。android:tileMode: 平铺模式,这个属性有如下几个值:disabled、clamp、repeat 和 mirror,disable 它是表示关闭平铺模式,这是默认值;repeat 表示的是简单的水平和竖直方向上的平铺效果, mirror 表示一种在水平和竖直方向上的镜面投影效果,clamp 表示的效果就是图片四周的像素会扩展到周围区域。3、ShapeDrawable它可理解为通过颜色来构造的图形,可以是纯色的图形,也可以是具有渐变效果的图形;我们先写一个 demo,然后再对它的属性一一说明;(1)在 drawable 目录下新建一个 shape_drawable.xml 文件; (2)Activity 的布局文件 activity_main.xml ;