欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

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

程序员文章站 2024-02-25 18:26:15
本文实例讲述了android编程实现控件不同状态文字显示不同颜色的方法。分享给大家供大家参考,具体如下: 方式一: 第一要选择的控件

本文实例讲述了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程序设计有所帮助。