android 中改变按钮按下时的颜色
原文出处:http://blog.csdn.net/nmsoftklb/article/details/9087233
a、在开发中大家都会遇到这样情况,在一个xxx.xml文件中如果有两个以上的组件有一样的属性功能时,可以把它们共同的内容抽取出来
放在styles.xml文件来声明。
然后在相应的组件中可以这样引用 : style="@style/widget_listview"
style标签也可以这样来定义:res-----values------styles.xml
<style name="widget_listview">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">match_parent</item>
<item name="android:layout_weight">1</item>
<item name="android:listSelector">@drawable/listview_item_selector</item>
<item name="android:divider">@drawable/listview_divider_line</item>
<item name="android:dividerHeight">1.0dip</item>
<item name="android:fadingEdge">none</item>
<item name="android:scrollingCache">false</item>
</style>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="true" android:drawable="@drawable/frame_button_n"></item> <!-- 正常情况下 -->
<item android:state_enabled="false" android:drawable="@drawable/frame_button_p"></item> <!-- 按下时按钮的变化 -->
</selector>
articleManager.setOnClickListener(frameArticleBtnClick(articleManager, 1));
/**
* @param btn
* @param flag
* 记录哪个按钮被选中
* @return 当按下相应的按钮时颜色发生变化,并且该按钮处于不可重复点击状态
*/
private OnClickListener frameArticleBtnClick(final Button btn, final int flag) {
return new OnClickListener() {
@Override
public void onClick(View v) {
if (btn == articleManager) {
articleManager.setEnabled(false);
} else
articleManager.setEnabled(true);
if (btn == articleTypeManager) {
articleTypeManager.setEnabled(false);
} else
articleTypeManager.setEnabled(true);
currentFlagBtn = flag;
}
};
}
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。