<<艺术探索读书笔记>>
第六章,Android的Drawable
层次关系
分类
自定义Drawable
Drawable
: 一种可以在Canvas
上绘制的抽象概念.种类很多(颜色和图片都是一个Drawable
).
简介
Drawable
常用于View的背景
,一般通过xml
来创建;- 通过
getIntrinsicWidth
获取Drawable内部宽
. - 颜色没有内部宽高,
Drawable没有大小
,作为背景,会随图片拉升.
分类
- BitmapDrawable:表示一张
图片
,对应bitmap
标签. - ShapeDrawable: 通过
颜色
来构建,对应shape
标签. - LayerDrawable: 一种层次化的
Drawable集合
,对应layer-list
标签. - StateListDrawable: 是一个
Drawable集合
,对应selector
标签. - LevelListDrawable: 每个
Drawable对应一个等级
,对应level-list
标签. - TransitionDrawable: 用于实现两个
Drawable
之间的淡入淡出效果,对应transition
标签. - InsetDrawable:
Drawable
内嵌到自己中,并流一定的间距,可用于带有间距的divider
,对应inset
标签 - ScaleDrawable: 根据自己的level将指定
drawable缩放
,对应scale
标签 - ClipDrawable: 根据level
裁剪 drawable
,对应clip
标签
更多参考:
drawable-resource
自定义Drawable
- 作为图像显示
- 作为
view
的背景
1 Drawable
工作原理很简单,核心就是draw方法
,自定义Drawable
无法在xml
中使用.
2. 一般如果自定义Drawable
作为图片使用,则需要重写getIntrinsicWidth
..方法,会影响View
的wrap_content
布局.
3. 可以通过getBounds
来获取Drawable
实际区域大小,一般和View尺寸
相同.
扩展阅读 :
之前的总结: Android Drawable体系