一句话介绍Android的各种Drawable

Android  drawable 简介

1、AnimationDrawable
  一般用来创建帧动画,由一系列的Drawable对象组成,也可作为View的背景。在XML中以<animation-list>标志。

2、BitmaDrawable
  包含一个位图(bitmap),可以平铺、拉伸等,其创建过程多样,包括根据一个文件路径、input stream、inflater xml文件 或者一个 bitmap 对象。[这个还是很有用的]。在XML中以<bitmap>标志。
  
3、ClipDrawable
根据当前的level值对其内部引用的Drawable对象进行裁剪,需要设置裁剪开始的地方及裁剪方向。也就是根据level值决定Drawable的那些部分能够显示。在XML中以<clip>标志。

4、ColorDrawable
  内部含有指定的Color值,根据Color值填充Canvas。在XML中以<color>标志。

5、Drawable
  各种XXXDrawable的父类,定义通用操作的接口。需要注意的是各种Drawable的对象是不能获得事件的。

6、DrawableContainer
  此类可以包含多个Drawable 和 多个ConstantState ,可以根据不同的ConstantState选择相应的Drawable去显示。
  
7、GradientDrawable
  (这个不太好解释)
  A Drawable with a color gradient for buttons, backgrounds, etc.
  It can be defined in an XML file with the <shape> element.

8、InsetDrawable
  内部嵌入一个Drawable对象,并在周围留有特定的距离,适用于当背景比View的bounds 小的时候。在XML中以<inset>标志。

9、LayerDrawable

  内部包含一组Drawable,并按照在数组的顺序进行显示,索引最大者显示在最上面,同时显示哦。在XML中以<layer-list>标志。

10、LevelListDrawable

  内部包含一组Drawable对象,每一个赋予一个maxLevel值,当通过SetLevel(int)设置level值的时候,取 maxLevel >= level 中最小的 maxLevel对应的Drawable进行显示。在XML以<level-list>标志。

11、NinePatchDrawable
  可动态调整大小的 bitmap, 一般定义在 XXX.png 文件中, 可缩放,占用空间小。
  
12、PaintDrawable
  带有可选圆角的Drawable。

13、PictureDrawable
  内部包含一个Picture对象的Drawable,使得能够使用Drawable的地方就能使用Picture。

14、RotateDrawable
  内部包含一个Drawable对象,可根据当前的Level值,对包含的Drawable对象进行旋转。在XML中以<rotate>标志

15、ScaleDrawable
  内部包含一个Drawable对象,根据内部level的值对引用的Drawable进行缩放。在XML以<scale>标志。

15、ShapeDrawable
        内部包含一个Shape对象,根据Shape去绘制相应的形状,默认为RectShape。在XML以<shape>标志。

16、StateListDrawable
  内部包含由状态[常见的如 View的子类的状态,foucs/pressed等]到相应Drawable的映射,根据相应的状态选择对应的Drawable。Button点击的效果便是这个实现的,其实就是根据状态更换图片罗。在XML以<selector>标志。
  
17、TransitionDrawable
         实现两个Drawable的淡入淡出效果,是LayerDrawable的子类。在XML中以<transition>标志。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值