スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

タグ :

   印刷ボタン       この記事に拍手する       このエントリーをはてなブックマークに追加

Return to page top

  • Comments (Close): -
  • TrackBack (Close): -

文字色と背景色

今回は、テキストや背景の色を変更してみます。

アクティビティ(画面)における色を指定するには、XMLファイルによる定義が必要です。

まずは、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="#f0e68c"
>
<TextView
android:id="@+id/textview1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/pleaseinput"
android:textColor="#0000ff"
/>
<EditText
android:id="@+id/edittext1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/hinttext" >
</EditText>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/buttonclick"
android:layout_gravity="center">
</Button>
</LinearLayout>


実行結果:
20110717_6


まず背景色ですが、全体的なレイアウトを定義している LinearLayoutタグの属性として、

android:background="#f0e68c"

と設定しました。

色の指定は、16進数表記のRGB値で行います(カラーチャートを参考にするといいでしょう)。

テキストの文字色は、TextViewタグの属性として、

android:textColor="#0000ff"

と設定しました。

このmain.xmlにおける色指定では、blueやredといった色の名前での指定はできません。スピーディに作業をしたいときは、色の名前で指定できないのは不便です。

色の名前による指定を行うには、色の名前を定義する必要があります。

文字の値がアプリケーションのリソースの一種として考えるのと同様に、色の名前もリソースの一種と考えることができます。

そこで、res→valuesフォルダの中に、colors.xmlというXMLファイルを作成し、ここに色の名前を定義します。

20110717_7

先ほどとの違いを理解するため、背景を緑、文字色をオレンジにします。これを定義します。

<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="green">#008000</color>
<color name="orange">#ffa500</color>
</resources>


main.xmlでは、@color/色名 の形式で色を指定できます。

<?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/green"
>
<TextView
android:id="@+id/textview1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/pleaseinput"
android:textColor="@color/orange"
/>
<EditText
android:id="@+id/edittext1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/hinttext" >
</EditText>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/buttonclick"
android:layout_gravity="center">
</Button>
</LinearLayout>


実行結果:
20110717_8

それにしても、新しい色を使うたびにcolors.xmlで定義するのは面倒ですね。

色見本にのっている色をあらかじめすべて定義しておけば後の面倒が省かれますが、色をすべて定義するのはそれもまた骨の折れる作業です。

そんなことからネットを探してみると、色見本の色をすべて定義してXMLファイルにまとめたものがありました(こちらのサイトです)。

リンク切れがあったらいけないので、私のほうでもアップしておきます。colors.xml

次に、Javaプログラムで色指定をしてみましょう。XMLファイルの色指定を削除してください。

前回の続きで、EditTextに入力した文字を「●●が入力されました」とTextViewで出力するプログラムにおいて、TextViewにおける出力を赤いテキストでやってみます。

package sample.basic;

import android.app.Activity;
import android.os.Bundle;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.view.View;
import android.widget.TextView;
import android.widget.EditText;
import android.text.Editable;
import android.graphics.Color;

public class HelloAndroid extends Activity implements OnClickListener{

private Button button1;

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

button1=(Button)findViewById(R.id.button1);
button1.setOnClickListener(this);
}

public void onClick(View v){
TextView textview1=(TextView)findViewById(R.id.textview1);
EditText edittext1=(EditText)findViewById(R.id.edittext1);
Editable input=edittext1.getText();
textview1.setTextColor(Color.RED);
textview1.setBackgroundColor(Color.CYAN);
textview1.setText(input+" と入力されました。");
}
}


20110718_1
さて実行します。

20110718_3
赤いテキストと水色の背景で出力されました。

今回新たにインポートしたのは、android.graphics.Color クラスです。

Colorクラスでは、代表的な色を定数として利用することができます。どのような色が使えるかはリファレンスを参考にしてください。

今回は、TextViewクラスのsetTextColor()メソッドとsetBackgroundColor()メソッドを使って、テキストと背景の色を変化させました。引数には、Colorクラスの定数を使って色を指定することができます。

関連記事
スポンサーサイト

タグ :

   印刷ボタン       この記事に拍手する       このエントリーをはてなブックマークに追加

Return to page top

Comments:

ケン URL 2012-11-03 Sat 02:39:06

最近独学でAndroidアプリの作成の勉強を始めました。
全くの素人なので行き詰ることが多く、
このブログをよく拝見しております。

背景色、文字色の変更の方法を参照させて頂きました。
このような分かりやすいサイトが有ると大変助かります。
ありがとうございます!

Comment Form
Only inform the site author.

Trackback+Pingback:

TrackBack URL for this entry
http://androidhacker.blog94.fc2.com/tb.php/20-5ef3cf46
  • 閉じるボタン
レファレンス
月別アーカイブ
リンク
カテゴリ
QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。