Android之Drawable-LevelListDrawable

注意:本篇文章是本人阅读相关文章所写下的总结,方便以后查阅,所有内容非原创,侵权删。

本篇文章内容来自于:
1.Android开发艺术探索 任玉刚
2.领略千变万化的Android Drawable (一)

目录

  1. LevelListDrawable
    --8.1 什么是LevelListDrawable
    --8.2 LevelListDrawable语法/属性
    --8.3 LevelListDrawable使用案例

8. LevelListDrawable

8.1 什么是LevelListDrawable

LevelListDrawable对应于<level-list>标签,也表示一个Drawable的集合,但集合中的每个Drawable都一个等级。根据不同等级,LevelListDrawable会切换到相应的Drawable。

8.2 LevelListDrawable语法/属性

<?xml version="1.0" encoding="utf-8"?>
<level-list
    xmlns:android="http://schemas.android.com/apk/res/android" >
    //标签中的每个Item各表示一个Drawable,并有与之对应的等级
    //而等级则是由android:maxLevel和android:minLevel所决定的,其等级范围是0-10000,最小为0,默认值,最大则为10000
    <item
        //android:drawable 该等级下需要展示的图片
        android:drawable="@drawable/drawable_resource"
        //android:maxLevel 该项所允许的最大level
        android:maxLevel="integer"
        //android:minLevel 该项所允许的最小level
        android:minLevel="integer" />
</level-list>

8.3 LevelListDrawable使用案例

大概相似效果:


第一步:定义xml文件

<?xml version="1.0" encoding="utf-8"?>
<level-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:drawable="@drawable/shape_oval"
        android:maxLevel="1" />
    <item
        android:drawable="@drawable/shape_example"
        android:maxLevel="2" />
    <item android:maxLevel="3">
        <shape android:shape="rectangle">
            <solid android:color="#0f0" />
        </shape>
    </item>
</level-list>

第二步:使用

  • 当作为view的背景时,则通过Drawable的setLevel来设置不同的等级;
    ivShow.getDrawable().setLevel(3);

  • 当作为ImageView的前景时,则还可通过Imageview的setImageLevel来切换Drawable。
    ivShow.setImageLevel(0);

public class MainActivity extends BaseActivity {

    @BindView(R.id.btn_base64)
    Button btnBase64;
    @BindView(R.id.iv_show)
    ImageView ivShow;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
        ivShow.setImageResource(R.drawable.levellist_demo);
        ivShow.setImageLevel(0);
    }

    @OnClick(R.id.btn_base64)
    public void onViewClicked() {
        ivShow.setImageLevel(3);
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容