第六章、Drawable
一,Drawable是一个抽象类,他是所有Drawable对象的基类,
内部宽getInstrinsicWidth,内部高个体IntrinsicHeight
二,分类
1.BitMapDrawable 一张图片
2.ShapeDrawable 通过颜色来构造图象
标签<shape/> android:shape 表示图形的形状,rectangle矩形、oval椭圆、line横线和ring圆环 默认矩形。line和ring通过<stroke>标签指定宽度和颜色信息。
<corners> 表示shape的四个角的角度,只适用于矩形,单位px
<gradient>
<solid> 纯色填充 与gradient相对。通过android:color即可制定shape中的颜色。
<padding> 表示空白,包含他的View的空白。android:left|top|right|bottom
<size> shape的固有大小 android:width|height
3.LayerDrawable: 对应标签<layer-list>表示一种层次化的Drawable集合,通过将不同的Drawable放置在不同层的上面从而达到一种叠加的效果
4.StateListDrawable 对应标签<selector> 表示Drawable集合,每个Drawable都对应着View的一种状态,这样系统就会根据View的状态来选择合适的Drawable,主要同于设置可单击的View的背景,最常见的Button。
android:constanrSize:固有大小是否随状态(每一种状态对应一个Drawable)而改变。true:不变。false:改变(默认)
android:dither 是否打开抖动效果,开启可以让图片在低分辨率的屏幕上仍然获得较好的显示效果,默认true
android:variablePadding padding是否谁状态改变 建议false(默认)
5.LevelListDrawable 对应标签:<level-list>表示一个Drawable集合,集合中每个Drawable都有一个等级
6.TransitionDrawable 对应标签<transition> 用于实现两个Drawable之间的淡入淡出效果。
使用方法:
7,InsertDrawable对应标签<insert> 他可以将其他Drawable内嵌到自己当中,并且可以在四周留出一定的间距。当一个View希望自己的背景比自己的实际区域小时。
8.ScaleDrawable对应标签<scale> 可以根据自己的等级level将指定的Drawable缩放到一定比例。
等级0表示ScaleDrawable不可见,默认值0.
9.ClipDrawable对应标签<clip>,他可以根据自己当前的等级来裁剪另一个Drawable,裁剪方向android:clipOrientation和android:gravity共同决定等级越大裁剪区域越小 最大10000 p277
三,自定义Drawable
Drawable使用:1,作为ImageView中的图像来显示,2.作为View背景