博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[转]Android中设置TextView的颜色setTextColor
阅读量:6269 次
发布时间:2019-06-22

本文共 4974 字,大约阅读时间需要 16 分钟。

[转自]

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

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

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

String.xml文件为:

1 
2
3 4
Hello World, ListViewDemoActivity!
5
ListViewDemo
6 7
#FFFFFF
8 9

/res/color/text_color.xml

1 
2
3 4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 21

 

转载于:https://www.cnblogs.com/nc9527/p/5535615.html

你可能感兴趣的文章
windows 2003 群集
查看>>
几个gcc的扩展功能
查看>>
Spark一个简单案例
查看>>
关于结构体占用空间大小总结(#pragma pack的使用)
查看>>
通过浏览器查看nginx服务器状态配置方法
查看>>
shell简介
查看>>
android 使用WebView 支持播放优酷视频,土豆视频
查看>>
怎么用secureCRT连接Linux
查看>>
C# 使用WinRar命令压缩和解压缩
查看>>
linux学习笔记一----------文件相关操作
查看>>
Mono for Android 优势与劣势
查看>>
服务器端开发技术
查看>>
Python3中urllib详细使用方法(header,代理,超时,认证,异常处理)
查看>>
ajax提交多个对象,使用序列化表单和FormData
查看>>
深入分析由前序和中序重构二叉树问题
查看>>
leetcode 题解 || Valid Parentheses 问题
查看>>
将图片转成base64字符串并在JSP页面显示的Java代码
查看>>
什么是WeakHashMap--转
查看>>
js 面试题
查看>>
第二十二节,三元运算
查看>>