LockIconView-锁图标
一、概述
二、LockIconView图标切换机制
DrawableState存储着控件的enable、pressed、checked等状态,绘制时根据这些状态绘制出不同的图像。DrawableState的基础属性是不可修改的,但是我们可以通过修改DrawableState来给控件添加一些本来没有的属性。比如ImageView继承自View,本来是没有checked属性的,基础属性只有一个state_enabled,baseStates={android.R.attr.state_enable},通过setImageState(int[] extraState, boolean merge)方法可以合并添加新的属性。其中,第一个参数表示追加属性,第二个参数表示是否和基础属性合并。
ImageView iv = findViewById(R.id.iv); iv.setIamgeState(new int[]{android.R.attr.state_checked, android.R.attr.state_pressed}, true);
//extraStates = {android.R.attr.state_enabled, android.R.attr.state_checked, android.R.attr.state_pressed} iv.setIamgeState(new int[]{android.R.attr.state_checked, android.R.attr.state_pressed}, false);
//extraStates = {android.R.attr.state_checked, android.R.attr.state_pressed} iv.setIamgeState(new int[]{}, true);
//extraStates = {android.R.attr.state_enabled} iv.setImageState(new int[]{}, false);
//extraStates = {}
LockIconView就是利用这种机制来切换图标的。
三、图标刷新事件依赖
作者:观雪听涛
本站所有原创内容基于知识共享-署名-非商业性使用4.0国际许可协议发布,欢迎转载引用,但必须保留署名和出处