- BitmapDrawable
<bitmap
//图片资源id
android:src = "@{package:}drawable/drawable_resource"
//是否开启图片抗锯齿。开启后图片变平滑,同时会一定程度上降低图片清晰度(推荐开启)
android:antialias = {"true" | "false"}
//是否开启抖动效果(推荐开启)
android:dither = {"true" | "false"}
//是否开启过滤效果。图片尺寸被拉伸或者压缩时,开启可保持较好的显示效果(推荐开启)
android:filter = {"true" | "false"}
//图片小于容器尺寸时,设置图片的定位
android:gravity = {"top" | "bottom" | "left" | "right" | "center_vertical" |
"fill_vertical" | "center_horizontal" | "fill_horizontal" |
"center" | "fill" | "clip_vertical" | "clip_horizontal"}
//纹理映射(默认为false,不需要改动)
android:mipMap = {"true" | "false"}
//平铺模式。设置之后gravity属性会被忽略。disabled 默认值,clamp 图片四周像素扩展到周围区域,repeat 水平和竖直方向平铺,mirror 水平和竖直方向的镜面投影
android:titleMode = {"disabled" | "clamp" | "repeat" | "mirror"}
/>
- ShapeDrawable
<shape
//图形形状 rectangle 矩形,oval 椭圆,line 横线,ring 圆环
// ring 形状有5个特殊属性:innerRadius 内半径,thickness 圆环厚度,外半径减内半径,innerRadiusRatio 内半径占整个 Drawable 宽度的比例,默认9,
//thicknessRatio 厚度占整个 Drawable 宽度的比例,默认3,useLevel 一般为false,除非被当做 LevelListDrawable 使用
android:shape = {"rectangle" | "oval" | "line" | "ring"}>
// shape 的四个角的角度,只适用于矩形
<corners
android:radius = "integer"
android:topLeftRadius = "integer"
android:topRightRadius = "integer"
android:bottomLeftRadius = "integer"
android:bottomRightRadius = "integer"/>
//渐变效果,与 solid 互斥
<gradient
//渐变角度,默认为0,其值必须为45倍数,0表示从左到右,90表示从下到上
android:angle = "integer"
//渐变中心横坐标
android:centerX = "integer"
//渐变中心纵坐标
android:centerY = "integer"
//渐变的中间色
android:centerColor = "integer"
//渐变的结束色
android:endColor = "color"
//渐变半径,仅当 type="radial" 时有效
android:gradientRadius = "integer"
//渐变的起始色
android:startColor = "color"
//渐变类型 line 线性,radial 镜像,sweep 扫描线
android:type = {"linear" | "radial" | "sweep"}
//一般为 false,当作为 StateListDrawable 使用时为 true
android:useLevel = {"true" | "false"}/>
//空白,表示包含它的 View 的空白
<padding
android:left = "integer"
android:right = "integer"
android:top = "integer"
android:bottom = "integer"/>
//shape 的大小
<size
android:widht = "integer"
android:height = "integer"/>
//纯色填充
<solid
android:color = "color"/>
//描边
<stroke
//描边宽度
android:width = "integer"
//描边颜色
android:color = "color"
//虚线的线段宽度
android:dashWidth = "integer"
//虚线线段间的间隔
android:dashGap = "integer"/>
/shpe>
- LayerDrawable
层次化的 Drawable 集合
<layer-list>
<item
android:drawable = "@{package:}drawable/drawable_resource"
android:id = "@{+}{package:}id/resource_name"
android:top = "dimension"
android:right = "dimension"
android:bottom = "dimension"
android:left = "dimension"/>
</layer-list>
- StateListDrawable
<selector
//StateListDrawable 的固有大小是否不随着其状态改变而改变,默认 false
android:constantSize{"true" | "false"}
//是否开启抖动效果,默认 true
android:dither = {"true" | "false"}
//StateListDrawable 的 padding 是否随着其状态改变而改变,默认 false
android:variablePadding = {"true" | "false"}>
<item
android:drawable = "@[package:]drawable/drawable_resource"
//按下状态,未松开
android:state_pressed = ["true" | "false"]
//已获得焦点
android:state_focused = ["true" | "false"]
android:state_hovered = ["true" | "false"]
//选择了 View
android:state_selected = ["true" | "false"]
android:state_checkable = ["true" | "false"]
//选中了 View,一般适用于 CheckBox 这类在选中和非选中状态之间进行切换的 View
android:state_checked = ["true" | "false"]
//View 当前处于了用状态
android:state_enabled = ["true" | "false"]
android:state_activated = ["true" | "false"]
android:state_state_window_focused = ["true" | "false"]
- LevelListDrawable
当作为背景时,可通过 Drawable 的 setLevel 方法设置不同等级来切换 Drawable;当作为 ImageView 的前景 Drawable 时,可通过 ImageView 的 setImageLevel 切换 Drawable。
<level-list>
<item
android:drawable = "@drawable/drawable_resource"
android:maxLevel = "integer"
android:minLevel = "integer"/>
</level-list>
- TransitionDrawable
实现两个 Drawable 之间的淡入淡出效果,通过 startTransition 和 reverseTransition 实现效果以及它的逆过程。
<transition>
<item
android:drawable = "@[package:]drawable/drawable_resource"
android:id = "@[+][package:]id/resource_name"
android:top = "dimension"
android:right = "dimension"
android:bottom = "dimension"
android:left = "dimension"
- InsetDrawable
可以将其他 Drawable 内嵌到自己当中,并在四周留出一定的间距。可实现一个 View 的背景比自己的实际区域小的效果。
<inset
android:drawable = "@drawable/drawable_resource"
//顶部、底部、左边、右边内凹的大小
android:insetTop = "dimension"
android:insetBottom = "dimension"
android:insetRight = "dimension"
android:insetLeft = "dimension"/>
- ScaleDrawable
可根据自己的等级将指定的 Drawable 缩放到一定比例。必须设置等级在0到10000之间。
<scale
android:scaleGravity = ["top" | "bottom" | "left" | "right" | "center_vertical" |
"fill_vertical" | "center_horizontal" | "fill_horizontal" |
"center" | "fill" | "clip_vertical" | "clip_horizontal"]
// Drawable 宽高德缩放比例
android:scaleHeight = "percentage"
android:scaleWidth = "percentage"/>
- ClipDrawable
可根据等级裁剪 Drawable,裁剪方向可通过 clipOrientation 和 gravity 属性共同控制。等级越大,裁剪范围越小
<clip
android:drawable = "@drawable/drawable_resource"
android:clipOrientation = ["horizontal" | "vertical"]
android:gravity = ["top" | "bottom" | "left" | "right" | "center_vertical" |
"fill_vertical" | "center_horizontal" | "fill_horizontal" |
"center" | "fill" | "clip_vertical" | "clip_horizontal"]
ClipDrawable-gravity.png
网友评论