在Android中,如果需要改變控制項預設的顏色,包括值的顏色,需要預先在strings.xml中設置,類似字串,可以反復調用。Android中顏色可以使用drawable或是color來定義。
本例中strings.xml內容:

<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> 



上面定義了幾個顏色值,下面是在佈局檔中的調用,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 {
/** Called when the activity is first created. */
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);//直接使用android.graphics.Color的靜態變數
tv2.setTextColor(this.getResources().getColor(R.color.blue));//使用預先設置的顏色值

 

}
}
創作者介紹
創作者 shadow 的頭像
shadow

資訊園

shadow 發表在 痞客邦 留言(0) 人氣()