获取xml里设置的statelistdrawable内的各个状态对应的drawable
来源:互联网 发布:mac windows安装u盘 编辑:程序博客网 时间:2024/06/05 04:35
因为StatelistDrawable内获取状态以及drawable的方法都是被隐藏的,所以只有利用java的反射机制来获取各个状态,以及各个状态对应的drawable
StateListDrawable userDrawable = (StateListDrawable) mResources.getDrawable(backGround);
Method getStateCountMethod = slDraClass.getDeclaredMethod("getStateCount", null);
Method getStateSetMethod = slDraClass.getDeclaredMethod("getStateSet", int.class);
Method getDrawableMethod = slDraClass.getDeclaredMethod("getStateDrawable", int.class);
int count = (Integer) getStateCountMethod.invoke(userDrawable, null);
Log.d(TAG, "state count ="+count);
for(int i=0;i < count;i++){
int[] stateSet = (int[]) getStateSetMethod.invoke(userDrawable, i);
if(stateSet == null|| stateSet.length ==0){
Log.d(TAG, "state is null");
}else{
for(int j=0;j<stateSet.length;j++){
Log.d(TAG, "state ="+stateSet[j]);
if(stateSet[j] == -ENABLEED){
Log.d(TAG, "enabled false");
hasFalseEnabledDrawable = true;
Drawable drawable = (Drawable) getDrawableMethod.invoke(userDrawable, i);//这就是你要获得的Enabled为false时候的drawable
newDrawable.addState(new int[]{-ENABLEED}, drawable);
}
}
0 0
- 获取xml里设置的statelistdrawable内的各个状态对应的drawable
- 获取xml中backgound属性的statelistdrawable里drawable的方法
- 获取drawable里的路径
- StateListDrawable与<selector>的各种状态
- android中用xml文件设置button的各个状态的图片。
- drawable的状态
- [OBS] 各个数据源的数据获取方法 & 对应的源文件
- StateListDrawable的使用
- StateListDrawable的应用
- StateListDrawable的使用
- StateListDrawable的使用
- button的StateListDrawable
- Android的StateListDrawable详解
- 线程的各个状态
- HTTP协议请求中返回的各个状态码对应的状态信息
- 各个errno对应的意义
- web.xml内各个元素加载的顺序
- JavaScript里获取电池状态的方法
- ubuntu12.04安装svn 更新
- iOS 中UIButton的 settitle 和 titlelabel的使用误区
- C++——谈谈你对面向对象编程的认识
- present出来的页面push到其他页面
- JSP中获取项目的绝对路径
- 获取xml里设置的statelistdrawable内的各个状态对应的drawable
- 深入理解java类加载器ClassLoader
- Android开发单例模式
- UFT12支持Goole Chrome的扩展程序
- app瘦身和包压缩技术有什么区别?
- centos7 和 kali2 双系统
- MBProgressHUD提示显示在最表层
- JS查找、替换与删除demo
- UI刷新和线程相关