【转】Android中设置TextView的颜色setTextColor--代码中设置字体颜色
原文网址:http://www.cnblogs.com/myphoebe/archive/2012/01/06/2314728.html
android中设置TextView的颜色有方法setTextColor,这个方法被重载了,可以传入两种参数。
- public void setTextColor(int color) {
- mTextColor = ColorStateList.valueOf(color);
- updateTextColors();
- }
- public void setTextColor(ColorStateList colors) {
- if (colors == null) {
- throw new NullPointerException();
- }
- mTextColor = colors;
- updateTextColors();
- }
下边就分别写出怎么使用这两个方法设置TextView的颜色:
- TextView tv = new TextView(this);
- tv.setText("Test set TextView's color.");
- //方案一:代码中通过argb值的方式
- tv.setTextColor(Color.rgb(255, 255, 255));
这种方法也就是传入int color值,这个int不是R文件中自动分配的int值,所以要注意。这是Color类中的静态方法构造出来的颜色int值。
- Resources resource = (Resources) getBaseContext().getResources();
- ColorStateList csl = (ColorStateList) resource.getColorStateList(R.color.my_color);
- if (csl != null) {
- tv.setTextColor(csl);
- }
这种方法是通过ColorStateList得到xml中的配置的颜色的。好多需要xml中配置的都要类似这样的映射xml文件。
还有种方法:
- XmlResourceParser xrp = getResources().getXml(R.color.my_color);
- try {
- ColorStateList csl = ColorStateList.createFromXml(getResources(), xrp);
- tv.setTextColor(csl);
- } catch (Exception e) {
- }
全部代码:
- package com.txlong;
- import android.app.Activity;
- import android.graphics.Color;
- import android.os.Bundle;
- import android.widget.TextView;
- public class ListViewDemoActivity extends Activity {
- // private ListView listView;
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- TextView tv = new TextView(this);
- tv.setText("Test set TextView's color.");
- //方案一:通过ARGB值的方式
- /**
- * set the TextView color as the 0~255's ARGB,These component values
- * should be [0..255], but there is no range check performed, so if they
- * are out of range, the returned color is undefined
- */
- // tv.setTextColor(Color.rgb(255, 255, 255));
- /**
- * set the TextView color as the #RRGGBB #AARRGGBB 'red', 'blue',
- * 'green', 'black', 'white', 'gray', 'cyan', 'magenta', 'yellow',
- * 'lightgray', 'darkgray'
- */
- tv.setTextColor(Color.parseColor("FFFFFF"));
- /** 原来不知道有上边的方法,就用这个笨笨方法了 */
- // String StrColor = null;
- // StrColor = "FFFFFFFF";
- // int length = StrColor.length();
- // if (length == 6) {
- // tv.setTextColor(Color.rgb(
- // Integer.valueOf(StrColor.substring(0, 2), 16),
- // Integer.valueOf(StrColor.substring(2, 4), 16),
- // Integer.valueOf(StrColor.substring(4, 6), 16)));
- // } else if (length == 8) {
- // tv.setTextColor(Color.argb(
- // Integer.valueOf(StrColor.substring(0, 2), 16),
- // Integer.valueOf(StrColor.substring(2, 4), 16),
- // Integer.valueOf(StrColor.substring(4, 6), 16),
- // Integer.valueOf(StrColor.substring(6, 8), 16)));
- // }
- //方案二:通过资源引用
- // tv.setTextColor(getResources().getColor(R.color.my_color));
- //方案三:通过资源文件写在String.xml中
- // Resources resource = (Resources) getBaseContext().getResources();
- // ColorStateList csl = (ColorStateList) resource.getColorStateList(R.color.my_color);
- // if (csl != null) {
- // tv.setTextColor(csl);
- // }
- //方案四:通过xml文件,如/res/text_color.xml
- // XmlPullParser xrp = getResources().getXml(R.color.text_color);
- // try {
- // ColorStateList csl = ColorStateList.createFromXml(getResources(), xrp);
- // tv.setTextColor(csl);
- // } catch (Exception e) {
- // }
- // listView = new ListView(this);
- //
- // Cursor cursor = getContentResolver().query(
- // Uri.parse("content://contacts/people"), null, null, null, null);
- //
- // startManagingCursor(cursor);
- //
- // ListAdapter listAdapter = new SimpleCursorAdapter(this,
- // android.R.layout.simple_expandable_list_item_2, cursor,
- // new String[] { "name", "name" }, new int[] {
- // android.R.id.text1, android.R.id.text2 });
- //
- // listView.setAdapter(listAdapter);
- // setContentView(listView);
- setContentView(tv);
- }
- }
String.xml文件为:
- <?xml version="1.0" encoding="utf-8"?>
- <resources>
- <string name="hello">Hello World, ListViewDemoActivity!</string>
- <string name="app_name">ListViewDemo</string>
- <color name="my_color">#FFFFFF</color>
- </resources>
/res/color/text_color.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="#FF111111"/>
- <!-- pressed -->
- <item android:state_focused="true" android:color="#FF222222"/>
- <!-- focused -->
- <item android:state_selected="true" android:color="#FF333333"/>
- <!-- selected -->
- <item android:state_active="true" android:color="#FF444444"/>
- <!-- active -->
- <item android:state_checkable="true" android:color="#FF555555"/>
- <!-- checkable -->
- <item android:state_checked="true" android:color="#FF666666"/>
- <!-- checked -->
- <item android:state_enabled="true" android:color="#FF777777"/>
- <!-- enabled -->
- <item android:state_window_focused="true" android:color="#FF888888"/>
- <!-- window_focused -->
- </selector>
【转】Android中设置TextView的颜色setTextColor--代码中设置字体颜色的更多相关文章
- 如何设置TextView控件的背景透明度和字体透明度
如何设置TextView控件的背景透明度和字体透明度 设计师给的标注都是类似这样的: 字号:26 颜色:#000000 透明度:80% 其实,程序上只要需要一个色值就OK了,那么这个色值我如何计算呢? ...
- 为什么阿里巴巴Java开发手册中不允许魔法值出现在代码中?
在阅读<阿里巴巴Java开发手册>时,发现有一条关于关于常量定义的规约,具体内容如下: 图中的反例是将数据缓存起来,并使用魔法值加链路 id 组成 key,这就可能会出现其他开发人员在复制 ...
- VC、MFC中设置控件的背景色、标题、字体颜色、字体要注意的地方[转]
在MFC中设置控件的背景色.字体.字体颜色.标题等属性主要是利用OnCtlColor函数来实现. 如: HBRUSH CAlarm::OnCtlColor(CDC* pDC, CWnd* pWnd, ...
- 设置TextView控件的背景透明度和字体透明度
TextView tv = (TextView) findViewById(R.id.xx); 第1种:tv.setBackgroundColor(Color.argb(255, 0, 255, 0) ...
- Android OpenGL ES(六)----进入三维在代码中创建投影矩阵和旋转矩阵
我们如今准备好在代码中加入透视投影了. Android的Matrix类为它准备了两个方法------frustumM()和perspectiveM(). 不幸的是.frustumM()的个缺陷,它会影 ...
- IDEA中的替换功能(替换代码中的变量名很好用哦)
刚刚上班不久,这两天正在研究公司项目里面的代码,今天用阿里的插件扫描了一下代码,发现代码中有很多变量的命名,没有遵循驼峰式的命名规则.一开始我一个一个的修改这些变量名,后来无意中用了一下Ctrl+F( ...
- 使用Java8中的Optional类来消除代码中的null检查
简介 Optional类是Java 8新增的一个类,Optional 类主要解决的问题是臭名昭著的空指针异常(NullPointerException). —— 每个 Java 程序员都非常了解的异常 ...
- Android 之px于dp在Java代码中的转换
现在由于用到了,使用代码进行动态布局,所以需要进行px于dp之间的转换. 现将其封装为方法,以便于调用. public int DpToPx(Context context,float dp){ fl ...
- iOS导航栏NavigationBar的颜色,按钮和标题以及字体颜色
首先,层级关系: leftBarButtonItem.rightBarButtonItem.title都是加在UINavigationItem上的,UINavigationItem再加在Navigat ...
- sublime中使用插件anaconda而在代码中出现方框
这个标志是说不符合PEP8标准,比如使用了Tab做缩进:一行过长等问题. 可以在可以在 Sublime > Preferences > Package Settings > Anac ...
随机推荐
- HDU 2501 Tiling_easy version(简单递推)
Tiling_easy version Problem Description 有一个大小是 2 x n 的网格,现在需要用2种规格的骨牌铺满,骨牌规格分别是 2 x 1 和 2 x 2,请计算一共有 ...
- 修复Windows7的便签问题
工作的时候,喜欢利用Windows的附件“便签”,将自己要做的事情一一列在上面,显示在桌面上, 今天突然发现便签损坏,系统是元数据损坏,后来在网上查到解决方法,特此记录: 1. 以管理员身份运行 cm ...
- JS当前日期相加相减
function DateAddORSub(interval,type,number) { /* * 功能:实现Script的Date加减功能. * 参数:interval,字符串表达式,表示要添加的 ...
- yii2源码学习笔记(十三)
模型类DynamicModel主要用于实现模型内的数据验证yii2\base\DynamicModel.php <?php /** * @link http://www.yiiframework ...
- netbeans git 配置(ssh方式)
git出问题了,自己又重新配置了下git. 参考文章: https://netbeans.org/kb/docs/ide/git_zh_CN.html#github
- 网络ip
国际规定:把所有的IP地址划分为 A,B,C,D,E A类地址:范围从0-127,0是保留的并且表示所有IP地址,而127也是保留的地址,并且是用于测试环回用的.因此 A类地址的范围其实是从1-126 ...
- C#读取带命名空间的xml,xaml文件的解决方案
使用C#读取xml文件有三种常用的方式: 1.xmlDocument 2.XmlTextReader 3.Linq To Xml 但是这些方式在读写有些带命名空间的xml时就不知道怎么办了(例如把xa ...
- 强大DevExpress,Winform LookUpEdit 实现多列查询 gridview弹出下拉选择 z
关键代码请参考http://www.devexpress.com/Support/Center/p/K18333.aspx 最新DEMO 下载 The current GridLookUpEdit's ...
- Asp.Net MVC 使用FileResult导出Excel数据文件
MVC实现Excel导出功能,今天来记录一下. 采取了最简单的方法.(转载) 用的是Html拼接成Table表格的方式,返回 FileResult 输出一个二进制的文件. 第一种:使用FileCo ...
- Instruments --- 内存泄露
虽然iOS 5.0版本之后加入了ARC机制,由于相互引用关系比较复杂时,内存泄露还是可能存在.所以了解原理很重要. 这里讲述在没有ARC的情况下,如何使用Instruments来查找程序中的内存泄露, ...