1、CilpDrawable
是对Drawable进行剪切操作,控制剪切区域;
android中的进度跳就是使用一个ClipDrawable实现效果的,它根据level的属性值,决定剪切区域的大小
ClipDrawable通过setLevel(int level)方法来设置剪切区域,level从0到10000,为0时完全不显示,为10000时完全显示
剪切图片资源,最小为0,最大为10000
可横向裁剪,也可竖向裁剪
<Clip
xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@mipmap/ic_launcher"
android:clipOrientation="horizontal"
android:gravity="left">
</Clip>
2、TransitionDrawable 是LayerDrawable的子类,不过它只负责管理两层drawable,并且提供了一个透明度变化的动画,可以控制从一层drawable过度到另一层drawable的动画效果
<transition
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@mipmap/ic_launcher"></item>
<item android:drawable="@mipmap/test1"></item>
</transition>
将这个文件设置为图片的src,在代码中调用
TransitionDrawable drawable = (TransitionDrawable)imageView.getDrawable();
drawable.startTransition(2000);//设置开始动画,并设置时间
drawable.startTransition(2000);//恢复drawable,并设置时间
3、InsertDrawable 在背景图片资源基础上插入一个资源,可以将原背景图合并为一个资源drawable
<inset
xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@android:color/holo_red_dark"
android:insetLeft="50dp"
android:insetRight="50dp"
android:insetTop="50dp"
android:insetBottom="50dp">
</inset>
4、BitmapDrawable是对Bitmap的一种包装,可以设置它包装的bitmap在BitmapDrawable区域内的绘制方式,比如 平铺填充、拉伸填充或者保持图片原始大小等
其属性:
android:tileMode 显示模型
android:antialias 是否抗锯齿
android:dither 屏幕配置不同时,是否允许抖动
5、LayerDrawable:可以管理一组drawable对象在LayerDrawable的drawable资源按照列表的顺序绘制,列表的最后一个drawable绘制在最上层
其结构,每一个item代表一个资源,下方的item会显示在上面的item之上
<layer-list>
<item>
<bitmap/>
</item>
</layer-list>
6、StateListDrawable 就是一个选择器,可以设置获取焦点、点击、默认情况下的不同显示资源
7、LevelListDrawable 管理一组drawable资源,里面的每一个drawable资源与一个最大数值结合起来,作为LevelListDrawable资源的一项
调用Drawable的setLevel()方法可以加载level-list或代码中定义的某个drawable资源
<level-list>
<item
android:drawable="@mipmap/ic_launcher"
android:minLevel="12"
android:maxLevel="20">
</item>
</level-list>
Demo地址 https://yunpan.cn/ckXewiguu5t25 (提取码:3abb)