4.2 设置文本颜色

Color类的完整写法是Android.Graphics.Color,它的特点是设置颜色。虽然在Android平台上有很多种表示颜色的方法,但是类Color中提供的设置颜色方法是最好用的。在Color类中包含了如下12种最常用的颜色。

· Color.BLACK

· Color.BLUE

· Color.CYAN

· Color.DKGRAY

· Color.GRAY

· Color.GREEN

· Color.LTGRAY

· Color.MAGENTA

· Color.RED

· Color.TRANSPARENT

· Color.WHITE

· Color.YELLOW

类Color的3个静态方法,具体说明如下。

· static int argb(int alpha, int red, int green, int blue):构造一个包含透明对象的颜色;

· static int rgb(int red, int green, int blue):构造一个标准的颜色对象;

· static int parseColor(String colorString):解析一种颜色字符串的值,比如传入Color. BLACK。

Color类返回的都是整型结果,例如,返回0xff00ff00表示绿色、返回0xffff0000表示红色。我们可以将这个DWORD型看做AARRGGBB,AA代表Alpha透明色,后面的就不难理解了,每一段的范围为0~255。

实例4-1 用Color类更改文字的颜色(daima\4\yan)。

(1)设计理念

在本实例中,预先在Layout中插入了两个TextView控件,并通过两种程序的描述方法来实时更改原来Layout里TextView的背景色及文字颜色,最后使用类Android.Graphics.Color来更改文字的前景色。

(2)具体实现

step 1 编写布局文件main.xml,在里面使用了两个TextView对象,主要代码如下所示。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  >
  <TextView
  android:id="@+id/myTextView01"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:text="@string/str_textview01"
  />
  <TextView
  android:id="@+id/myTextView02"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:text="@string/str_textview02"
  />
</LinearLayout>

step 2 编写主文件yan.java,功能是调用各个公用文件来实现具体的功能。在里面分别新建了两个类成员变量mTextView01和mTextView02,这两个变量在onCreate之初,以findViewById方法使之初始化为Layout(main.xml)里的TextView对象。在当中使用了Resource类及Drawable类,分别创建了resources对象及HippoDrawable对象,调用了setBackgroundDrawable来更改mTextView01的文字底纹,并且使用setText方法来更改TextView里的文字。而在mTextView02中,使用了类Android.Graphics.Color中的颜色常数,并使用setTextColor来更改文字的前景色。文件yan.java的主要代码如下所示。

package dfzy.yan;
import dfzy.yan.R;
import android.app.Activity;
import android.content.res.Resources;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.widget.TextView;
public class yan extends Activity
{
  private TextView mTextView01;
  private TextView mTextView02;
  @Override
  public void onCreate(Bundle savedInstanceState)
  {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    mTextView01 = (TextView) findViewById(R.id.myTextView01);
    mTextView01.setText("使用的是Drawable背景色文本。");
    Resources resources = getBaseContext().getResources();
    Drawable HippoDrawable = resources.getDrawable(R.drawable.white);
    mTextView01.setBackgroundDrawable(HippoDrawable);
    mTextView02 = (TextView) findViewById(R.id.myTextView02);
    mTextView02.setTextColor(Color.MAGENTA);
  }
}

调试运行后的效果如图4-1所示。

图4-1 运行效果