您所在的位置:读书频道 > 设计开发 > Java系列 > 3.3 更改TextView文字颜色

3.3 更改TextView文字颜色

2009-07-30 09:14 余志龙等 人民邮电出版社 我要评论(0) 字号:T | T
一键收藏,随时查看,分享好友!

《Google Android SDK开发范例大全》第3章为大家讲述的是用户人机界面,本节为大家介绍更改TextView文字颜色。

AD:

3.3 更改TextView文字颜色

引用Drawable颜色常数及背景色

范例说明

上一个范例通过Drawable来定义颜色常数,但实际设计中最常用的方法,则是使用程序控制TextView或其它对象的背景色(setBackgroundDrawable方法),如判断对象被点击时的背景色亮起、当失去焦点时,又恢复成原来的背景色等等。

以下的范例,将扩展前一个范例的实现,预先在Layout当中设计好两个TextView,并在onCreate同时,通过两种程序描述方法,实时更改原来Layout里TextView的背景色以及文字颜色,最后学会使用Android默认的颜色常数(graphics.Color)来更改文字的前景色。

运行结果

 
图3-3  通过setBackgroundDrawable方法更
改TextView的背景色以及graphics.Color更改前景色
范例程序
  1. src/irdc.ex03_03/EX03_03.java

程序里新建两个类成员变量:mTextView01与mTextView02,这两个变量在onCreate之初,以findViewById方法使之初始化为layout(main.xml)里的TextView对象。在当中使用了Resource类以及Drawable类,分别创建了resources对象以及HippoDrawable对象,并将前一个范例中所创建的R.drawable.white以getDrawable方法加载,最后则调用了setBackgroundDrawable来更改mTextView01的文字底纹。更改TextView里的文字,则使用了setText方法。

在mTextView02当中,使用了graphics.Color里的颜色常数,接着,再利用setTextColor更改文字的前景色。

  1. package irdc.ex03_03;  
  2.  
  3. import android.app.Activity;  
  4. import android.content.res.Resources;  
  5. import android.graphics.Color;  
  6. import android.graphics.drawable.Drawable;  
  7. import android.os.Bundle;  
  8. import android.widget.TextView;  
  9.  
  10. public class EX03_03 extends Activity  
  11. {  
  12.   private TextView mTextView01;  
  13.   private TextView mTextView02;  
  14.     
  15.   /** Called when the activity is first created. */ 
  16.   @Override 
  17.   public void onCreate(Bundle savedInstanceState)  
  18.   {  
  19.     super.onCreate(savedInstanceState);  
  20.     setContentView(R.layout.main);  
  21.       
  22.     mTextView01 = (TextView) findViewById(R.id.myTextView01);  
  23.     mTextView01.setText("我是应用Drawable背景色的戴维文本。");  
  24.       
  25.     Resources resources = getBaseContext().getResources();  
  26.     Drawable HippoDrawable = resources.getDrawable(R.drawable.white);  
  27.     mTextView01.setBackgroundDrawable(HippoDrawable);  
  28.       
  29.     mTextView02 = (TextView) findViewById(R.id.myTextView02);  
  30.       
  31.     /*下使用Color.MAGENTA指定文本的颜色为紫红色*/ 
  32.     mTextView02.setTextColor(Color.MAGENTA);  
  33.   }  
扩展学习
  1. Resources resources = getBaseContext().getResources();  
  2. Drawable HippoDrawable = resources.getDrawable(R.drawable.white); 

上述这2行代码,在前一版本中的写法是这样的:

  1. Resources.resources = getDrawable(R.drawable.solid_red);  
  2. Drawable HippoDrawable = resources.getDrawable(R.drawable.white); 

但是在1.0之后的版本,Resources不再支持直接使用 .getDrawable方法直接取用drawable,而必须先取得基类的Context才行。

此外,在程序里使用了Color.MAGENTA让TextView里的文字变成了粉红色,事实上,在Android里还有以下12种常见的颜色:

  1. Color.BLACK  
  2. Color.BLUE  
  3. Color.CYAN  
  4. Color.DKGRAY  
  5. Color.GRAY  
  6. Color.GREEN  
  7. Color.LTGRAY  
  8. Color.MAGENTA  
  9. Color.RED  
  10. Color.TRANSPARENT  
  11. Color.WHITE  
  12. Color.YELLOW 

这些颜色常数是定义在android.graphics.Color里的:

类型

常数

色码

int

BLACK

-16777216

0xff000000

int

BLUE

-16776961

0xff0000ff

int

CYAN

-16711681

0xff00ffff

int

DKGRAY

-12303292

0xff444444

int

GRAY

-7829368

0xff888888

int

GREEN

-16711936

0xff00ff00

int

LTGRAY

-3355444

0xffcccccc

int

MAGENTA

-65281

0xffff00ff

int

RED

-65536

0xffff0000

int

TRANSPARENT

0

0x00000000

int

WHITE

-1

0xffffffff

int

YELLOW

-256

0xffffff00

【责任编辑:云霞 TEL:(010)68476606】

回书目   上一节   下一节

网友评论TOP5

查看所有评论(

提交评论

  1. Linux服务器配置全程实录
  2. 揭秘--优秀PPT这样制作

热点专题

更多>>

读书

网络工程师必读——接入网与交换网
本书是以一个典型的计算机广域网通信为背景进行编写的,详细、全面地介绍了通信网中最主要的两个部分:目前,国内外接入网与交换

51CTO旗下网站

领先的IT技术网站 51CTO 领先的中文存储媒体 WatchStor 中国首个CIO网站 CIOage 中国首家数字医疗网站 HC3i 移动互联网生活门户 灵客风LinkPhone