2012年03月28日

テキストビューの色を変更する


main.xmlで配置したTextViewの色を動的に変更したいと思います
テキストビューの色を変更するにはsetTextColorを使用します
指定できる色はpaintと同様12種類です
paintの色を指定する
またpaintと同様に赤要素・緑要素・青要素をそれぞれ設定することで
自由な配色も可能です

今回は例としてmain.xmlに12個のTextViewを配置します
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:layout_width="fill_parent"
	android:layout_height="fill_parent"
	android:orientation="vertical" >


    <TextView
    	android:id="@+id/textView1"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:text="TextView" />

    <TextView
    	android:id="@+id/textView2"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:text="TextView" />

    <TextView
    	android:id="@+id/textView3"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:text="TextView" />

    <TextView
    	android:id="@+id/textView4"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:text="TextView" />

    <TextView
    	android:id="@+id/textView5"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:text="TextView" />

    <TextView
    	android:id="@+id/textView6"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:text="TextView" />

    <TextView
    	android:id="@+id/textView7"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:text="TextView" />

    <TextView
    	android:id="@+id/textView8"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:text="TextView" />

    <TextView
    	android:id="@+id/textView9"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:text="TextView" />

    <TextView
    	android:id="@+id/textView10"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:text="TextView" />

    <TextView
    	android:id="@+id/textView11"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:text="TextView" />

    <TextView
    	android:id="@+id/textView12"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:text="TextView" />

</LinearLayout>
次にMainActivityの変更です
それぞれのテキストビューにfindViewByIdでIdを割り当てます
さいごにそれぞれのテキストビューにsetTextColor
色をセットしていきます
また、今回はsetTextで何を表示させるか表しています
以下MainActivity.javaです
package blog.test;
 
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.widget.TextView;
 
public class MainActivity extends Activity {


    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
    	        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        setTitle("MainActivity");
        

		TextView textView1 = (TextView) findViewById(R.id.textView1);
		TextView textView2 = (TextView) findViewById(R.id.textView2);
		TextView textView3 = (TextView) findViewById(R.id.textView3);
		TextView textView4 = (TextView) findViewById(R.id.textView4);
		TextView textView5 = (TextView) findViewById(R.id.textView5);
		TextView textView6 = (TextView) findViewById(R.id.textView6);
		TextView textView7 = (TextView) findViewById(R.id.textView7);
		TextView textView8 = (TextView) findViewById(R.id.textView8);
		TextView textView9 = (TextView) findViewById(R.id.textView9);
		TextView textView10 = (TextView) findViewById(R.id.textView10);
		TextView textView11= (TextView) findViewById(R.id.textView11);
		TextView textView12 = (TextView) findViewById(R.id.textView12);

		textView1.setText("BLACK");
		textView1.setTextColor(Color.BLACK);
		textView2.setText("BLUE");
		textView2.setTextColor(Color.BLUE);
		textView3.setText("CYAN");
		textView3.setTextColor(Color.CYAN);
		textView4.setText("DKGRAY");
		textView4.setTextColor(Color.DKGRAY);
		textView5.setText("GRAY");
		textView5.setTextColor(Color.GRAY);
		textView6.setText("GREEN");
		textView6.setTextColor(Color.GREEN);
		textView7.setText("LTGRAY");
		textView7.setTextColor(Color.LTGRAY);
		textView8.setText("MAGENTA");
		textView8.setTextColor(Color.MAGENTA);
		textView9.setText("RED");
		textView9.setTextColor(Color.RED);
		textView10.setText("TRANSPARENT");
		textView10.setTextColor(Color.TRANSPARENT);
		textView11.setText("WHITE");
		textView11.setTextColor(Color.WHITE);
		textView12.setText("YELLOW");
		textView12.setTextColor(Color.YELLOW);

    }
}
実行結果はこうなります
device69.png
背景が黒いためBLACKの文字が見えなくなってしまってますw
またTRANSPARENTは透明を表すパラメータなので文字が見えなくなっています

スポンサードリンク

paintの色を指定する


Viewクラスのpaintではpaint.setColor();
を指定することで簡単に色の変更ができます

使用できる色は以下の通りです
Color.BLACK
Color.BLUE
Color.CYAN
Color.DKGRAY
Color.GRAY
Color.GREEN
Color.LTGRAY
Color.MAGENTA
Color.RED
Color.TRANSPARENT
Color.WHITE
Color.YELLOW

またpaint.setARGB();で数値として設定することもできます
指定するパラメータは四つありそれぞれ
A: アルファ値(不透明度)(0〜255)
R: 赤色(0〜255)
G: 緑色(0〜255)
B: 青色(0〜255)

を指定していきます
例:paint.setARGB(200,100,100,100);

またTextViewなどの色も同様にsetTextColorにより変更できます

スポンサードリンク

posted by kenken at 16:31 | Comment(0) | TrackBack(0) | グラフィックス 色指定 | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。