当前位置: 移动技术网 > 移动技术>移动开发>Android > Android编程实现控件不同状态文字显示不同颜色的方法

Android编程实现控件不同状态文字显示不同颜色的方法

2019年07月24日  | 移动技术网移动技术  | 我要评论

本文实例讲述了android编程实现控件不同状态文字显示不同颜色的方法。分享给大家供大家参考,具体如下:

方式一

第一要选择的控件

<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文字变色

api

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相关内容感兴趣的读者可查看本站专题:《android开发入门与进阶教程》、《android多媒体操作技巧汇总(音频,视频,录音等)》、《android基本组件用法总结》、《android视图view技巧总结》、《android布局layout技巧总结》及《android控件用法总结

希望本文所述对大家android程序设计有所帮助。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网