开发艺术探索-- Drawable

来源:互联网 发布:javascript 循环数组 编辑:程序博客网 时间:2024/06/12 18:59

<<艺术探索读书笔记>>

第六章,Android的Drawable

层次关系
分类
自定义Drawable

Drawable: 一种可以在Canvas上绘制的抽象概念.种类很多(颜色和图片都是一个Drawable).

简介

  1. Drawable常用于View的背景,一般通过xml来创建;
  2. 通过getIntrinsicWidth获取Drawable内部宽.
  3. 颜色没有内部宽高,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

  1. 作为图像显示
  2. 作为view的背景

1 Drawable工作原理很简单,核心就是draw方法,自定义Drawable无法在xml中使用.
2. 一般如果自定义Drawable作为图片使用,则需要重写getIntrinsicWidth..方法,会影响Viewwrap_content布局.
3. 可以通过getBounds来获取Drawable实际区域大小,一般和View尺寸相同.

扩展阅读 :
之前的总结: Android Drawable体系

0 0
原创粉丝点击