欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android开发工程师文集- 1小时学会各种Drawable

程序员文章站 2023-04-06 13:56:16
android开发工程师文集- 1小时学会各种drawable drawable介绍 drawable为抽象类,drawable与view有区别的地方,主要是体现事件和交互性上面。 view是面向用...

android开发工程师文集- 1小时学会各种drawable

drawable介绍

drawable为抽象类,drawable与view有区别的地方,主要是体现事件和交互性上面。

view是面向用户的,是可见的控件,能给它添加点击事件。drawable则相反,不能面向,也不可见,也不能添加点击事件。

drawable有好多子类,drawable为抽象类,所以有很多子类来继承它。

主要原理方法

draw()
setbounds()

bitmapdrawable 巴特美drawable

该子类为bitmap的包装,可以保持原图片大小,填充,拉伸。



layerdrawable 勒儿drawable

该子类就是来管理一组drawable的,第一张图片的放置,那么第二张图片会在第一张图片上,由此依次放置。



 
 
 
 

statelistdrawable

该类statelistdrawable根据不同状态提供不同图片。



 
 
 
 

levellistdrawable

该子类有不同的item -setlevel();


 
 
 
 

public void on(view v){
 iv.setimagelevel( //int );
}

transitiondrawable --- transi tion drawable

为layerdrawable的子类,只有两张图片的变化,没有多个图片,layerdrawable可以有多个item,而transitiondrawable只有两个item。


 
 
 
 

public void on(view v){
 transitiondrawable drawable=iv.getdrawable();
 //开启 starttransition();
 drawable.starttransition(2000);
}
public void off(view v){
 transtiondrawable drawable=iv.getdrawable();
 //关闭 reversetransition();
 drawable.reversetransition(2000);
}

insertdrawable

insertdrawable表示嵌入图片==padding



clipdrawable 可累drawable

该clipdrawabel是一种裁剪的形式,如同进度条。


clipdrawable drawable=iv.getdrawable();
drawable.setlevel(5000);
//范围0-10000;

diy的drawable

自己动手试试吧
梳理:
bitmapdrawable,
layerdrawable,
statelistdreawable,
levellistdrawable,
transitiondrawable,
insertdrawable,
clipdrawable.