原文网址: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. windows下安装redis和php的redis扩展

    1.redis简介 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(s ...

  2. php_curl扩展在WINDOWS2003上如何添加

    一.使用星外PHP安装后 二.修改环境变量,PATH: c:\php;c:\php\ext;%SystemRoot%\system32;

  3. AFNetworking自带的解析图片的方法

    首先要导入头文件 #import "UIKit+AFNetworking.h" 方法如下: [personImageView setImageWithURL:[NSURL URLW ...

  4. table强制不换行

    用iframe做了一个查询,里面有一个表格,结果当页面内容多的时候挤在了一起. 上图:

  5. 【POJ2482】【线段树】Stars in Your Window

    Description Fleeting time does not blur my memory of you. Can it really be 4 years since I first saw ...

  6. 第四篇、Tomcat 集群

    1.  前言 该篇中测试的机器发生了变更,在第一篇中设置的Apache  DocumentRoot "d:/deployment"修改为了DocumentRoot d:/clust ...

  7. 性能测试实践-linux

    需求:线上系统性能优化,查找服务器和线上系统瓶颈 根据线上经验数据及期望值定量 数据   up down 线上数据 50 500 测试数据 100 500~2000+ 测试数据 200 500~200 ...

  8. 浏览器兼容性判定写法格式(ie)

    条件注释判断浏览器<!--[if !IE]><!--[if IE]><!--[if lt IE 6]><!--[if gte IE 6]> <!- ...

  9. visual studio中验证控件的使用

    1.RequiredFieldValidator:验证一个必填字段,如果这个字段没填,那么,将不能提交信息. RequiredFieldValidator控件中,主要设置三个属性: (1)ErrorM ...

  10. jQuery常用技巧大放送

    1.关于页面元素的引用 通过jquery的$()引用元素包括通过id.class.元素名以及元素的层级关系及dom或者xpath条件等方法,且返回的对象为jquery对象(集合对象),不能直接调用do ...