Android下的Drawable使用
Drawable表示一种可绘制的内容,可以由图片或者颜色组成.Android下的Drawable有BitmapDrawable、GradientDrawable、LayerDrawable等等
1.BitmapDrawable
它表示一张图片,我们可以直接将图片放在drawable目录下,该图片就可以直接作为drawable引用,当然也可以用xml的方式来描述一张图片.
<?xml version="1.0" encoding="utf-8"?>
tileMode = "clamp"
tileMode = "repeat"
tileMode = "mirror"
tint = "#39c5bb" + tintMode = "multiply"
2.ShapeDrawable
ShapeDrawable是指在xml文件中的shape标签,实际对应的类是 GradientDrawable,它表示一个图形.
跟BitmapDrawable一致的属性就不详细说明了.
<?xml version="1.0" encoding="utf-8"?>
//描边,边宽度,边颜色,line和ring必须设置这个,否则无法正常显示
//dashWidth需要配合dashGap一起使用,两个值都不为0,会显示虚线效果
//填充色,决定了形状的整体颜色
//指定形状的宽高,未指定size,getIntrinsicWidth()等方法返回-1
//可以实现圆角效果的半径,对于矩形,则四个角都会改变,也可以单独设置两个角的圆角效果
//bottomLeftRadius、bottomRightRadius...
//渐变色,该节点和solid冲突,只能有一个,具体效果见下图
//angle:会影响渐变的方向,该值需要是45的倍数
//centerColor:渐变的中间色
//startColor:渐变的起始色
//endColor:渐变的结束色
//type:渐变的类型,取值:sweep(扫描渐变,想象一下雷达)、radial(径向渐变)、linear(线性渐变,默认)
//gradinetRaduis:只有type = "radial"有效,渐变半径
//useLevel:一般false,作为StateListDrawable为true
//centerY:渐变中心点的Y坐标,会影响渐变效果
//centerX:渐变中心点的X坐标,会影响渐变效果
3.LayerDrawable
它表示一个拥有层次化的Drawable集合,对应标签是layer-list.它可以包含多个drawable,通过LayerDrawable可以实现一些叠加的效果.
比如:
对于上图的效果要设置给ImageView的src属性才能看到效果.
<?xml version="1.0" encoding="utf-8"?>
//item 表示一个drawable对象,也可以通过android:drawable属性来引用一个现有drawable对象
//
-
//可以设置一个drawable的旋转角度,pivotY,pivotX旋转的偏移量
//这里设置的width和height对于View来说是没有任何意义的,它会按照View的大小来自适应
-
-
-
比较常用的属性有android:left、android:top、android:right、android:bottom,分别表示drawable相对于View的上下左右的偏移量.
待更新...