『Android』- TextViewの基本的な使い方
継承構造
extends View
implements ViewTreeObserver.OnPreDrawListener
java.lang.Object
↳ android.view.View
↳ android.widget.TextView
概要
TextView は、デバイス上でテキストを表示するための主要なUIコンポーネントです。表示する文字列やスタイルを簡単に設定できるため、Android開発で広く使用されています。
主な属性
以下は、頻繁に使用されるTextViewの主要なXML属性の例です:
<TextView
android:id="@+id/myTextView" <!-- コンポーネントのID -->
android:layout_width="match_parent" <!-- 幅 -->
android:layout_height="wrap_content" <!-- 高さ -->
android:layout_gravity="center" <!-- 親コンポーネント内の位置 -->
android:gravity="center" <!-- 自身内の文字の位置 -->
android:text="@string/hello" <!-- 表示する文字 -->
android:textSize="16sp" <!-- 文字サイズ -->
android:textColor="@android:color/black" <!-- 文字色 -->
android:background="@android:color/holo_blue_light" <!-- 背景色 -->
android:typeface="monospace" <!-- フォントスタイル -->
android:drawableStart="@drawable/ic_launcher" <!-- 左側アイコン -->
android:drawableEnd="@drawable/ic_launcher" <!-- 右側アイコン -->
android:padding="15dp" <!-- 内側の余白 -->
android:layout_margin="15dp" <!-- 外側の余白 -->
android:lineSpacingExtra="4dp" <!-- 行間の追加 -->
android:maxLines="2" <!-- 最大表示行数 -->
android:ellipsize="end" <!-- テキストが長い場合に末尾を省略 -->
tools:text="サンプルテキスト" <!-- プレビュー用の仮文字 -->
/>
動的設定の例
JavaやKotlinコードを用いて、TextViewの属性を動的に変更することも可能です。
Javaでの例
TextView myTextView = new TextView(this); // TextViewオブジェクトを生成
myTextView.setText("こんにちは"); // テキストを設定
myTextView.setTextSize(20); // 文字サイズを設定
myTextView.setTextColor(Color.BLUE); // 文字色を設定
myTextView.setTypeface(Typeface.SERIF, Typeface.BOLD); // フォントを設定
Typeface font = Typeface.createFromAsset(getAssets(), "fonts/CustomFont.ttf");
myTextView.setTypeface(font); // カスタムフォントを設定
myTextView.append("123"); // 文末に"123"を追加
myTextView.append("ABC", 1, 3); // 文末に"BC"を追加
myTextView.setBackgroundColor(Color.LTGRAY); // 背景色を設定
myTextView.setPadding(20, 25, 20, 25); // 内側の余白を設定 (左、上、右、下)
myTextView.setWidth(300); // 幅を設定
myTextView.setHeight(200); // 高さを設定
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT
);
lp.gravity = Gravity.CENTER;
myTextView.setLayoutParams(lp); // 親レイアウトに設定を適用
myTextView.setGravity(Gravity.CENTER); // テキストを中央寄せに設定
Kotlinでの例
val myTextView = TextView(this).apply {
text = "こんにちは"
textSize = 20f
setTextColor(Color.BLUE)
setTypeface(Typeface.SERIF, Typeface.BOLD)
val font = Typeface.createFromAsset(assets, "fonts/CustomFont.ttf")
typeface = font
append("123")
append("ABC", 1, 3)
setBackgroundColor(Color.LTGRAY)
setPadding(20, 25, 20, 25)
width = 300
height = 200
layoutParams = LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT
).apply {
gravity = Gravity.CENTER
}
gravity = Gravity.CENTER
}
注意点: setLayoutParamsの使い方
setLayoutParams メソッドは、子コンポーネントから親レイアウトに対してレイアウト情報を設定します。この例では、myTextView の親レイアウトが LinearLayout であるため、LinearLayout.LayoutParams を使用しています。
親レイアウトが異なる場合は、該当する LayoutParams を使用する必要があります。例えば、RelativeLayoutの場合は RelativeLayout.LayoutParams を使用します。
まとめ
2025年現在、TextViewはさらに多機能化しており、カスタマイズやパフォーマンスの向上が可能になっています。最新のプロパティやカスタムフォントの利用などを活用して、柔軟で魅力的なUIを構築しましょう。