Android 各种类的Drawable文件作用汇总

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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值