LevelListDrawable
2018-01-09 本文已影响25人
难得糊涂与君勉
图片介绍
其他Draw文章参考:
Android中Drawable整体介绍
前言
管理多个可选Drawable的资源,每个Drawable分配一个最大数值。 使用setLevel(int)设置对象的级别值将加载具有指定给其max属性的下一个较大或相等的值的图像。 一个很好的使用LevelListDrawable的例子是一个电池电量指示器图标,用不同的图像来表示当前的电池电量。
管理大量备选可绘制对象的可绘制对象,每个可绘制对象都分配有最大的备选数量。使用 setLevel() 设置可绘制对象的级别值会加载级别列表中android:maxLevel
值大于或等于传递到方法的值的可绘制对象资源。
语法
<?xml version="1.0" encoding="utf-8"?>
<level-list
xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:drawable="@drawable/drawable_resource"
android:maxLevel="integer"
android:minLevel="integer" />
</level-list>
(1)<level-list>
这必须是根元素。包含一个或多个 <item> 元素。
属性:
xmlns:android
字符串。必备。定义 XML 命名空间,其必须是 "http://schemas.android.com/apk/res/android"。
<item>
定义要在某特定级别使用的可绘制对象。
属性:
android:drawable
可绘制对象资源。必备。引用要插入的可绘制对象资源。
android:maxLevel
整型。此项目允许的最高级别。
android:minLevel
整型。此项目允许的最低级别。
例子
<?xml version="1.0" encoding="utf-8"?>
<level-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@drawable/test"
android:maxLevel="500"
android:minLevel="100"/>
<item
android:drawable="@drawable/xlj"
android:maxLevel="700"
android:minLevel="600"
/>
</level-list>
在布局文件中给button控件使用,然后这个在使用时候:
如果是当做View的背景,可以通过Drawable的setLevel设置水平
如果是ImageView使用时候,可以通过setImageLevel设置水平
mButton = (Button) findViewById(R.id.my_button);
final Drawable drawable = mButton.getBackground(); //当背景使用时候的关键
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (i == 0){
drawable.setLevel(400);
i = 1;
}else if (i == 1){
drawable.setLevel(600);
i = 2;
}else {
drawable.setLevel(0);
i = 0;
}
}
});
}