見出し画像

『Android』- TextViewの基本的な使い方



継承構造

extends View
implements ViewTreeObserver.OnPreDrawListener

java.lang.Objectandroid.view.Viewandroid.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を構築しましょう。

いいなと思ったら応援しよう!