Android学习之控件不同状态文字显示不同颜色
来源:互联网 发布:阿里云幸运券是什么 编辑:程序博客网 时间:2024/05/17 01:09
方式一:
第一要选择的控件
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/close_time_display"
android:layout_marginRight="20dp"
android:text="@string/default_time"
style="@style/item_content_text_style"/>
style是自定义的风格,对应的xml文件如下:
<style name="item_content_text_style">
<item name="android:textSize">26sp</item>
<item name="android:duplicateParentState">true</item>
<item name="android:textColor">@drawable/textcolor_yellow_selector</item>
</style>
textColor中的textcolor_yellow_selector如下
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android"
>
<item
android:state_pressed="true"
android:color="@color/yellow" />
<item
android:state_focused="true"
android:color="@color/yellow" />
<item android:state_selected="true"
android:color="@color/yellow"></item>
<item android:color="@color/white"/>
</selector>
实现方式二:ColorStateList文字变色
Windows平台VC,对于不同的按钮状态,采用不同的颜色显示文字,实现起来比较复杂,一般都得自绘按钮。但是Android里面实现起来非常方便。
我们首先添加一个ColorStateList资源XML文件,XML文件保存在res/color/button_text.xml:
- <?xml version="1.0" encoding="utf-8"?>
- <selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:state_pressed="true"
- android:color="#ffff0000"/> <!-- pressed -->
- <item android:state_focused="true"
- android:color="#ff0000ff"/> <!-- focused -->
- <item android:color="#ff000000"/> <!-- default -->
- </selector>
- Button btn=(Button)findViewById(R.id.btn);
- Resources resource=(Resources)getBaseContext().getResources();
- ColorStateList csl=(ColorStateList)resource.getColorStateList(R.color.button_text);
- if(csl!=null){
- btn.setTextColor(color_state_list);//设置按钮文字颜色
- }
或者可以这样:
- XmlResourceParser xpp=Resources.getSystem().getXml(R.color.button_text);
- try {
- ColorStateList csl= ColorStateList.createFromXml(getResources(),xpp);
- btn.setTextColor(csl);
- } catch (Exception e) {
- // TODO: handle exception
- }
最后附上所有可能出现的状态:
- <?xml version="1.0" encoding="utf-8"?>
- <selector xmlns:android="http://schemas.android.com/apk/res/android" >
- <item
- android:color="hex_color"
- android:state_pressed=["true" | "false"]
- android:state_focused=["true" | "false"]
- android:state_selected=["true" | "false"]
- android:state_active=["true" | "false"]
- android:state_checkable=["true" | "false"]
- android:state_checked=["true" | "false"]
- android:state_enabled=["true" | "false"]
- android:state_window_focused=["true" | "false"] />
- </selector>
- Android学习之控件不同状态文字显示不同颜色
- 【学习】css之链接在不同状态下显示不同颜色
- Android TextView不同文字显示不同颜色
- label 显示不同颜色 不同文字点击事件
- Android同一个TevtView显示不同颜色的文字,添加不同的点击事件。
- Android 单独控件实现不同字体大小、不同颜色
- UILabel显示不同颜色文字。
- 不同颜色文字拼接显示
- 不同颜色文字拼接显示
- textView 文字显示不同颜色
- android中TextView同一行显示不同颜色文字
- C# richTextBox显示不同颜色文字
- label显示不同颜色的文字
- ios Label显示不同颜色文字
- textview显示不同颜色不同大小
- cocos2d-x Label不同文字不同颜色
- Android开发之不同字体、不同颜色的文本、URL
- Android自定义view之余额不同状态显示
- APP审核/支持iPhone5
- Nginx 设置访问密码
- 第10章 内部排序——快速排序
- Hive 初始化运行流程
- UIControl 使用全面解析
- Android学习之控件不同状态文字显示不同颜色
- SQL SERVER 多行转多列
- linux常见错误解决方案
- opencv2 学习第13天 轮廓特征及其描述子
- 进程管理
- iframe和response.sendRedirect使用的问题
- ASIHTTPRequest实现断点续传
- linux下一个监控监控I/O的脚本
- 几款编辑器推荐