Android Drawable Resource 学习笔记

Drawable Resource 平时开发的时候经常会用到,主要的用途就是给各个控件设置背景,用的最多的也就是 shape,selector 这二种。

今天在看《Android 开发艺术探索》的时候发现还有其他的几种 Drawable 类型,虽然平时很少用到,但还是先记下来。

一个Drawable资源是绘图中的一个普通概念,可以再屏幕上绘制出来。可以通过APIs中的 getDrawable(int) 方法检索出来,也可以在其他的XML资源中通过 Android:drawable 和 android:icon 等属性使用它。Android 中有多种不同类型的 drawable。

Bitmap File

一个位图文件(.png,.jpg,或.gif), 生成一个BitmapDrawable对象.

Nine-Patch File

就是一张可以基于自动适应内容大小而伸缩区域的png图片(.9.png), 生成一个NinePatchDrawable对象

Layer List

这个Drawable用来管理一个其它多个drawable的数组.既然是一个数组,所以就不难理解索引值最大的元素将画在最高部. 生成一个 LayerDrawable对象。在Drawable文件中使用 layer-list 标签表示。

Layer List 实际上就是一个多图层的图片,上面的图层会覆盖下面的,最典型的使用场景就是绘制阴影背景或者某一条边框。具体的介绍和使用请看这里

State List

这是一个xml文件用于不同的状态来引用不同的位图图形(比如,当一个Button控件按下状态要显示不同的图像).生成一个StateListDrawable对象。在Drawable文件中使用 selector 标签表示。具体的介绍和使用请看这里

Level List

LevelListDrawable 对应于 level-list 标签,它表示一个 Drawable 集合,集合中的每个 Drawable 都有一个等级的概念,根据不同的等级,LevelListDrawable 会切换为对应的 Drawable。典型的例子就是电量的显示。具体的介绍和使用请看这里

Transition Drawable

对应于 transition 标签,它用于实现两个 Drawable 之间的淡入淡出效果。比如给 Button 设置一个 transition Drawable 背景,点击后可以让它渐变为另一个背景颜色。具体的介绍和使用请看这里

Inset Drawable

对应于 inset 标签,它可以将其他 Drawable 内嵌到自己当中,并可以在四周留出一定的间距。当一个 view 希望自己的背景比自己的实际区域小的时候,可以采用 InsetDrawable 来实现,同时采用 layer-list 也可以实现这种效果。

典型使用场景就是给一个全屏的布局设置一个背景,但是这个背景不是充满全屏的。具体的介绍和使用请看这里

Clip Drawable

对应于 clip 标签,它可以根据自己当前的等级来裁剪另一个 Drawable 。具体的介绍和使用请看这里

Scale Drawable

对应于 scale 标签,它可以根据自己的等级将指定的 Drawable 缩放到一定比例。具体的介绍和使用请看这里

Shape Drawable

这是一种很常见的 Drawable ,可以理解为通过颜色来构造的图形,它既可以是纯色的图形,也可以是具有渐变效果的图形。具体的介绍和使用请看这里

AnimationDrawable

用来创建动画。

Color Drawable

ColorDrawable使用很简单,使用元素就可以定义一个ColorDrawable,然后再其他的地方使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值