关于setImageState(int[] state, boolean merge)的解释以及使用方式
来源:互联网 发布:怎么使用vim编译c语言 编辑:程序博客网 时间:2024/06/05 18:18
思路来源自http://blog.csdn.net/qinjuning/article/details/7474827
使用场景:按下和松开两种效果图片的替换,避免了繁琐的判断和赋值
selector.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_pressed="true" android:drawable="@drawable/iconfont_kai"></item>
<item android:state_pressed="false" android:drawable="@drawable/iconfont_off"></item>
</selector>
main.xml:
<ImageView
android:id="@+id/img"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/selector"
android:layout_centerInParent="true" />
Main.java:
ImageView img = (ImageView) findViewById(R.id.img);
img.setImageState(new int[]{android.R.attr.state_pressed}, true);
用处拓展,可以拓展selector.xml中的属性 来实现类似于item选中或未选中的效果
自定义效果示例:
attrs.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="State" >
<attr name="state_ma" format="boolean" />
</declare-styleable>
</resources>
selector.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" xmlns:ma="http://schemas.android.com/apk/res-auto">
<item ma:state_ma="true" android:drawable="@drawable/iconfont_kai"></item>
<item ma:state_ma="false" android:drawable="@drawable/iconfont_off"></item>
</selector>
main.xml:
<ImageView
android:id="@+id/img"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/img_state"
android:layout_centerInParent="true" />
Main.java:
ImageView img = (ImageView) findViewById(R.id.img);
// img.setImageState(new int[]{android.R.attr.state_pressed}, true);
img.setImageState(new int[]{R.attr.state_ma}, true);
- 关于setImageState(int[] state, boolean merge)的解释以及使用方式
- LayoutInflater.inflate(int resource, ViewGroup root, boolean attachToRoot)的使用
- 关于const int*, int const*以及int *const的区别
- 关于const int*, int const*以及int *const的区别
- 关于bool 与 Boolean 的区别以及string 和 String
- 关于merge函数的使用
- SharePrefrence,支持存取int,string,boolean,long,float,以及清空整个share存储的数据。
- 关于Boolean和boolean的说说
- 关于LayoutInflater.inflater(int resId,ViewGroup root,boolean attchtoroot)第三个参数的问题
- NETSTAT工具state的解释
- 【JAVA】 关于int 以及String的转换
- 关于PHP的boolean和string变量定义及使用
- Boolean的使用
- boolean的使用
- RadioButton的setSelected(boolean state)与fire()的区别
- struts2的配置解释以及使用ajax、创建传输json的两种方式
- Response.Redirect(String, Boolean) 的解释
- 【转自百度知道】关于const int *的解释
- iOS 进度条 UIProgressView
- 表格(TableViewer类)
- 移植tslib库出现ts_open: No such file or directory
- dao层extends BaseDaoJpa修改数据设为只读不做更新
- 【reversing.kr】Replace逆向分析
- 关于setImageState(int[] state, boolean merge)的解释以及使用方式
- BZOJ 4320 ShangHai2006 Homework 并查集
- 大数据数据仓库-场景
- modelsim的do文件
- Web前端开发学习2:动态网页
- LDAP 中 CN, OU, DC 的含义
- nios的头文件
- 最新VMware的下载地址
- Socket-TCP-2