iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android编程实现控件不同状态文字显示不同颜色的方法
  • 878
分享到

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

方法Android 2022-06-06 08:06:34 878人浏览 独家记忆
摘要

本文实例讲述了Android编程实现控件不同状态文字显示不同颜色的方法。分享给大家供大家参考,具体如下: 方式一: 第一要选择的控件 <TextView andr

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

您可能感兴趣的文章:Android编程实现图片背景渐变切换与图层叠加效果Android编程实现左右滑动切换背景的方法Android实现动态切换组件背景的方法修改Android FloatingActionButton的title的文字颜色及背景颜色实例详解Android中EditText和AutoCompleteTextView设置文字选中颜色方法Android开发中ImageLoder加载网络图片时将图片设置为ImageView背景的方法android开发修改状态栏背景色和图标颜色的示例Android中创建类似Instagram的渐变背景效果Android开发之背景动画简单实现方法Android编程实现对话框Dialog背景透明功能示例Android开发实现按钮点击切换背景并修改文字颜色的方法


--结束END--

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

本文链接: https://www.lsjlt.com/news/25540.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何实现可以随进度显示不同颜色的css3进度条
    这篇文章主要讲解了“如何实现可以随进度显示不同颜色的css3进度条”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何实现可以随进度显示不同颜色的css3进度...
    99+
    2024-04-02
  • Android实现修改状态栏背景、字体和图标颜色的方法
    前言:Android开发,对于状态栏的修改,实在是不友好,没什么api可以用,不像ios那么方便.但是ui又喜欢只搞ios一套.没办法.各种翻源码,写反射.真的蛋疼.需求场景:当toolbar及状态栏需要为白色或浅色时(如简书),状态栏由于...
    99+
    2023-05-30
    android 状态栏 roi
  • Android编程实现随机生成颜色的方法示例
    本文实例讲述了Android编程实现随机生成颜色的方法。分享给大家供大家参考,具体如下:网上有个ColorPicker开源项目,选择颜色值。而在这里我想实现的是动态修改一个view的背景色。开一个线程,每隔1s修改一次view的背景色。我们...
    99+
    2023-05-30
    android 随机 颜色
  • C#实现给Word每一页设置不同文字水印的方法详解
    目录方法思路dll引用代码示例Word中设置水印时,可使用预设的文字或自定义文字设置为水印效果,但通常添加水印效果时,会对所有页面都设置成统一效果,如果需要对每一页或者某个页面设置不...
    99+
    2024-04-02
  • 对象导向编程在 PHP 和 Django 中的实现方法有什么不同?
    对象导向编程(OOP)是一种编程范式,它将程序中的所有内容都看作是对象,通过对象之间的互相调用和交互,来完成程序的功能。在 PHP 和 Django 中,OOP 的实现方法有些不同,下面将进行详细的分析和比较。 一、PHP 中的 OOP 实...
    99+
    2023-08-28
    django ide 对象
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作