在Android中,如果需要改变控件默认的颜色,包括值的颜色,需要预先在strings.xml中设置,类似字符串,可以反复调用。Android中颜色可以使用drawable或是color来定义。
本例中strings.xml内容:
- <a href="http://www.pocketdigi.com/20110509/266.html" rel="bookmark" style="font-size: 14px; color: rgb(51, 68, 34); text-decoration: none; "><?xml version="1.0" encoding="utf-8"?>
- <resources>
- <string name="hello">Hello World, Main!</string>
- <string name="app_name">Color</string>
- <drawable name="red">#ff0000</drawable>
- <color name="gray">#999999</color>
- <color name="blue">#0000ff</color>
- <color name="background">#ffffff</color>
- </resources></a>
上面定义了几个颜色值,下面是在布局文件中的调用,main.xml内容:
- <?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"
- android:background="@color/background"
- >
- <TextView android:id="@+id/tv1"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="@string/hello"
- android:textColor="@drawable/red"
- />
- <TextView android:id="@+id/tv2"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="@string/hello"
- android:textColor="@color/gray"
- />
- <TextView android:id="@+id/tv3"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="@string/hello"
- />
- </LinearLayout>
在Java程序中使用:
- package com.pocketdigi.color;
-
- import android.app.Activity;
- import android.graphics.Color;
- import android.os.Bundle;
- import android.widget.TextView;
-
- public class Main extends Activity {
-
- TextView tv1,tv2,tv3;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- tv1=(TextView)findViewById(R.id.tv1);
- tv2=(TextView)findViewById(R.id.tv2);
- tv3=(TextView)findViewById(R.id.tv3);
- tv3.setTextColor(Color.BLUE);
- tv2.setTextColor(this.getResources().getColor(R.color.blue));
-
- }
- }