原文网址:http://www.cnblogs.com/myphoebe/archive/2012/01/06/2314728.html

android中设置TextView的颜色有方法setTextColor,这个方法被重载了,可以传入两种参数。

  1. public void setTextColor(int color) {
  2. mTextColor = ColorStateList.valueOf(color);
  3. updateTextColors();
  4. }
  5. public void setTextColor(ColorStateList colors) {
  6. if (colors == null) {
  7. throw new NullPointerException();
  8. }
  9. mTextColor = colors;
  10. updateTextColors();
  11. }

下边就分别写出怎么使用这两个方法设置TextView的颜色:

  1. TextView tv = new TextView(this);
  2. tv.setText("Test set TextView's color.");
  3. //方案一:代码中通过argb值的方式
  4. tv.setTextColor(Color.rgb(255, 255, 255));

这种方法也就是传入int color值,这个int不是R文件中自动分配的int值,所以要注意。这是Color类中的静态方法构造出来的颜色int值。

  1. Resources resource = (Resources) getBaseContext().getResources();
  2. ColorStateList csl = (ColorStateList) resource.getColorStateList(R.color.my_color);
  3. if (csl != null) {
  4. tv.setTextColor(csl);
  5. }

这种方法是通过ColorStateList得到xml中的配置的颜色的。好多需要xml中配置的都要类似这样的映射xml文件。

还有种方法:

  1. XmlResourceParser xrp = getResources().getXml(R.color.my_color);
  2. try {
  3. ColorStateList csl = ColorStateList.createFromXml(getResources(), xrp);
  4. tv.setTextColor(csl);
  5. } catch (Exception e) {
  6. }

全部代码:

  1. package com.txlong;
  2. import android.app.Activity;
  3. import android.graphics.Color;
  4. import android.os.Bundle;
  5. import android.widget.TextView;
  6. public class ListViewDemoActivity extends Activity {
  7. // private ListView listView;
  8. /** Called when the activity is first created. */
  9. @Override
  10. public void onCreate(Bundle savedInstanceState) {
  11. super.onCreate(savedInstanceState);
  12. TextView tv = new TextView(this);
  13. tv.setText("Test set TextView's color.");
  14. //方案一:通过ARGB值的方式
  15. /**
  16. * set the TextView color as the 0~255's ARGB,These component values
  17. * should be [0..255], but there is no range check performed, so if they
  18. * are out of range, the returned color is undefined
  19. */
  20. //      tv.setTextColor(Color.rgb(255, 255, 255));
  21. /**
  22. * set the TextView color as the #RRGGBB #AARRGGBB 'red', 'blue',
  23. * 'green', 'black', 'white', 'gray', 'cyan', 'magenta', 'yellow',
  24. * 'lightgray', 'darkgray'
  25. */
  26. tv.setTextColor(Color.parseColor("FFFFFF"));
  27. /** 原来不知道有上边的方法,就用这个笨笨方法了 */
  28. //      String StrColor = null;
  29. //      StrColor = "FFFFFFFF";
  30. //      int length = StrColor.length();
  31. //      if (length == 6) {
  32. //          tv.setTextColor(Color.rgb(
  33. //                  Integer.valueOf(StrColor.substring(0, 2), 16),
  34. //                  Integer.valueOf(StrColor.substring(2, 4), 16),
  35. //                  Integer.valueOf(StrColor.substring(4, 6), 16)));
  36. //      } else if (length == 8) {
  37. //          tv.setTextColor(Color.argb(
  38. //                  Integer.valueOf(StrColor.substring(0, 2), 16),
  39. //                  Integer.valueOf(StrColor.substring(2, 4), 16),
  40. //                  Integer.valueOf(StrColor.substring(4, 6), 16),
  41. //                  Integer.valueOf(StrColor.substring(6, 8), 16)));
  42. //      }
  43. //方案二:通过资源引用
  44. //      tv.setTextColor(getResources().getColor(R.color.my_color));
  45. //方案三:通过资源文件写在String.xml中
  46. //      Resources resource = (Resources) getBaseContext().getResources();
  47. //      ColorStateList csl = (ColorStateList) resource.getColorStateList(R.color.my_color);
  48. //      if (csl != null) {
  49. //          tv.setTextColor(csl);
  50. //      }
  51. //方案四:通过xml文件,如/res/text_color.xml
  52. //      XmlPullParser xrp = getResources().getXml(R.color.text_color);
  53. //      try {
  54. //          ColorStateList csl = ColorStateList.createFromXml(getResources(), xrp);
  55. //          tv.setTextColor(csl);
  56. //      } catch (Exception e) {
  57. //      }
  58. // listView = new ListView(this);
  59. //
  60. // Cursor cursor = getContentResolver().query(
  61. // Uri.parse("content://contacts/people"), null, null, null, null);
  62. //
  63. // startManagingCursor(cursor);
  64. //
  65. // ListAdapter listAdapter = new SimpleCursorAdapter(this,
  66. // android.R.layout.simple_expandable_list_item_2, cursor,
  67. // new String[] { "name", "name" }, new int[] {
  68. // android.R.id.text1, android.R.id.text2 });
  69. //
  70. // listView.setAdapter(listAdapter);
  71. // setContentView(listView);
  72. setContentView(tv);
  73. }
  74. }

String.xml文件为:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <resources>
  3. <string name="hello">Hello World, ListViewDemoActivity!</string>
  4. <string name="app_name">ListViewDemo</string>
  5. <color name="my_color">#FFFFFF</color>
  6. </resources>

/res/color/text_color.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <selector xmlns:android="http://schemas.android.com/apk/res/android">
  3. <item android:state_pressed="true" android:color="#FF111111"/>
  4. <!-- pressed -->
  5. <item android:state_focused="true" android:color="#FF222222"/>
  6. <!-- focused -->
  7. <item android:state_selected="true" android:color="#FF333333"/>
  8. <!-- selected -->
  9. <item android:state_active="true" android:color="#FF444444"/>
  10. <!-- active -->
  11. <item android:state_checkable="true" android:color="#FF555555"/>
  12. <!-- checkable -->
  13. <item android:state_checked="true" android:color="#FF666666"/>
  14. <!-- checked -->
  15. <item android:state_enabled="true" android:color="#FF777777"/>
  16. <!-- enabled -->
  17. <item android:state_window_focused="true" android:color="#FF888888"/>
  18. <!-- window_focused -->
  19. </selector>

【转】Android中设置TextView的颜色setTextColor的更多相关文章

  1. [转]Android中设置TextView的颜色setTextColor

    [转自]http://txlong-onz.iteye.com/blog/1249609 Android中设置TextView的颜色setTextColor android中设置TextView的颜色 ...

  2. Android中设置TextView的颜色setTextColor

    tv.setTextColor(Color.parseColor("#FFFFFF")); tv.setTextColor(Color.WHITE); tv.setTextColo ...

  3. 【转】Android中设置TextView的颜色setTextColor--代码中设置字体颜色

    原文网址:http://www.cnblogs.com/myphoebe/archive/2012/01/06/2314728.html android中设置TextView的颜色有方法setText ...

  4. android中设置TextView/Button 走马灯效果

    在Android的ApiDemo中,有Button的走马灯效果,但是换作是TextView,还是有一点差异. 定义走马灯(Marquee),主要在Project/res/layout/main.xml ...

  5. Android 中 设置TextView垂直滚动

    布局文件 android:scrollbars="vertical" android:singleLine="false" 代码文件 ctl_tv_conten ...

  6. android中用Spannable在TextView中设置超链接、颜色、字体

    昨晚研读 ApiDemo 源码至 com.example.android.apis.text.Link 类.首先,看一下其运行效果:  要给 TextView 加上效果,方式主要有几种: 第一种,自动 ...

  7. 【原创】如何在Android中为TextView动态设置drawableLeft等

    如何在Android中为TextView动态设置drawableLeft等   两种方式:   方式1:手动设置固有边界 Drawable drawable = getResources().getD ...

  8. Android中对TextView中的部分内容的字体样式的设置方法

    Android中的TextView中内容,有时候需要对其部分内容添加下划线和颜色操作: String str = "回复 " + uname + " 的评论: " ...

  9. Android中string.xml文件中设置部分字体颜色大小

    1.在string.xml文件中: <string name="tips_all"><Data><![CDATA[清理进程:<font colo ...

随机推荐

  1. GUI编程笔记(java)11:使用Netbeans工具进行GUI编程

    Netbeans工具:是基于java语言进行GUI界面设计的工具 Visual Studio工具:是基于C#语言进行GUI界面设计的工具

  2. linux设置语言编码

    前段时间在服务器上安装了centos6.2版本,当初安装时语言选择英文.这本来也没有什么问题,直到前一段时间.我的同事发现部署的web项目中出现乱码情况.但中文作为参数进行传递到下一个页面的时候就乱码 ...

  3. 万能的everything彻底解决mysql问题

    万能的everthing D:\RECYCLER\S-1-5-21-1214440339-1123561945-1801674531-500\Dd16.0\my.ini可能之前的电脑的隐藏文件没有删除 ...

  4. DataTbale取值

    有一个DataTable数据 //创建DataTable对象 DataTable dt = new DataTable("Table_AX"); //为DataTable创建列 / ...

  5. App上线基本流程

    还可参考的:http://www.cocoachina.com/bbs/read.php?tid=330302 iOS项目上传前期准备材料: 1.已有开发者账号 2.已有发布证书 3.一张1024*1 ...

  6. JavaScript Array(数组) 对象

    更多实例 合并两个数组 - concat() 合并三个数组 - concat() 用数组的元素组成字符串 - join() 删除数组的最后一个元素 - pop() 数组的末尾添加新的元素 - push ...

  7. Javascript的AMD规范

    Javascript发展到今天,已经从一个小丑语言变成了不可替代的前端利器,已经脱离了低端的玩笑脚步,而转变为有规可依的强大语言. 本文主要讲述下如今被大力推广的AMD规范,为什么要AMD,什么场景是 ...

  8. BeanUtils的日期问题

    //注册日期类型转换器 //第一种  自定义方法            ConvertUtils.register(new Converter(){                //第一个参数是目标 ...

  9. input+div 下拉选择框

    前台html页面 <html> <head> <meta name="viewport" content="width=device-wid ...

  10. 谈谈 jQuery 中的防冲突(noConflict)机制

    许多的 JS 框架类库都选择使用 $ 符号作为函数或变量名,jQuery 是其中最为典型的一个.在 jQuery 中,$ 符号只是 window.jQuery 对象的一个引用,因此即使 $ 被删除,w ...