Widget解説第一回 "TextView"
Androidには便利なWidgetがいくつもあるがそれを使いこなすのは難しい。
そこで自分のためということも含め使い方の解説をしていきたい。
今回とりあげるTextViewはテキストを表示するだけでなく、例えばボタンのラベルとかにも使われている。
そんなわけで第一回はテキスト表示の基本となるTextViewから紹介しようと思う。
まずは下部の動作画面とソースを見てもらうとわかりやすいはず。
作る際に注意する点を次に説明する。
setBackgroundColorメソッドやsetTextColorメソッドなどでの色の指定はARGB形式の16進数で指定するか、
android.graphics.Colorを使って指定する。
setBackgroundメソッドで指定できるのはdrawable形式のもの、もしくはdrawableのリソースIDである。
setTextSizeメソッドやsetTextScaleXメソッドなどの大きさの指定はfloat型である。
そのためint型やdouble型ではなく数字の後にfを付けなければいけない。ここら辺厳しいのね。
あとなんでsetTextScaleYメソッドがないんだろうか?
テキストを太字や斜体にするにはsetTypefaceメソッドを使う。
指定する値はandroid.graphics.Typefaceに載っていて、
DEFAULT_BOLDの他にDEFAULT_ITALIC、DEFAULT_BOLD_ITALIC、MONOSPACE、SANS_SERIF、SERIFが指定できる。
テキストの位置はsetAlignmentメソッドにandroid.text.Alignmentで指定する。
今回のサンプルで使用したALIGN_CENTER以外に、ALIGN_NORMAL、ALIGN_OPPOSITEが指定できる。
目新しいところはないと思うがテキスト表示の基本となる部分なので覚えておきたい。
ソース
package net.swelt.android.widgettextviewtest; import android.app.Activity; import android.os.Bundle; import android.content.Context; import android.graphics.Color; import android.graphics.Typeface; import android.text.Layout; import android.view.ViewGroup; import android.widget.LinearLayout; import android.widget.TextView; public class WidgetTextViewTest extends Activity { private final int WRAP_CONTENT = ViewGroup.LayoutParams.WRAP_CONTENT; private final int FILL_PARENT = ViewGroup.LayoutParams.FILL_PARENT; private LinearLayout mLinearLayout; /** Called when the activity is first created. */ @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); mLinearLayout = new LinearLayout(this); setContentView(mLinearLayout); mLinearLayout.setOrientation(LinearLayout.VERTICAL); //setText TextView tv1 = makeTextView(this, FILL_PARENT, WRAP_CONTENT); tv1.setText("TextView1"); //setTextColor TextView tv2 = makeTextView(this, FILL_PARENT, WRAP_CONTENT); tv2.setText("TextView2"); tv2.setTextColor(Color.BLUE); //tv2.setTextColor(0xff0000ff); //setBackgroundColor TextView tv3 = makeTextView(this, FILL_PARENT, WRAP_CONTENT); tv3.setText("TextView3"); tv3.setBackgroundColor(Color.CYAN); //setBackground TextView tv4 = makeTextView(this, FILL_PARENT, WRAP_CONTENT); tv4.setText("TextView4"); tv4.setBackground(R.drawable.kirby); //setShadowLayer TextView tv5 = makeTextView(this, FILL_PARENT, WRAP_CONTENT); tv5.setText("TextView5"); tv5.setShadowLayer(2, 2, 2, Color.BLACK); //setEnabled, setDisableTextColor TextView tv6 = makeTextView(this, FILL_PARENT, WRAP_CONTENT); tv6.setText("TextView6"); tv6.setDisabledTextColor(Color.GREEN); tv6.setEnabled(false); //setTextSize TextView tv7 = makeTextView(this, FILL_PARENT, WRAP_CONTENT); tv7.setText("TextView7"); tv7.setTextSize(18.0f); //setTextScaleX TextView tv8 = makeTextView(this, FILL_PARENT, WRAP_CONTENT); tv8.setText("TextView8"); tv8.setTextScaleX(4.0f); //setTypeface TextView tv9 = makeTextView(this, FILL_PARENT, WRAP_CONTENT); tv9.setText("TextView9"); tv9.setTypeface(Typeface.SANS_SERIF); TextView tv10 = makeTextView(this, FILL_PARENT, WRAP_CONTENT); tv10.setText("TextView10"); tv10.setAlignment(Layout.Alignment.ALIGN_CENTER); } private TextView makeTextView(Context context, int w, int h) { TextView tv = new TextView(context); tv.setLayoutParams(new LinearLayout.LayoutParams(w, h)); mLinearLayout.addView(tv); return tv; } }