AndroidでTextViewのテキストを水平・垂直方向に中央揃えするコード例

2024-08-21

AndroidでTextViewのテキストを水平・垂直方向に中央揃えする方法

XMLレイアウトファイルでの設定

  • android:gravity属性を使用します。
    • 水平方向の中央揃え: android:gravity="center"
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Centered Text"
    android:gravity="center" />

Javaコードでの設定

  • TextViewオブジェクトを取得し、setGravityメソッドを使用します。
    • 水平方向の中央揃え: textView.setGravity(Gravity.CENTER);
TextView textView = findViewById(R.id.textView);
textView.setGravity(Gravity.CENTER);

注意:

  • android:layout_widthandroid:layout_height属性は、テキストのサイズに合わせて適切な値を設定してください。
  • android:gravity属性は、TextViewのコンテンツ全体を揃えるためのものです。特定のテキスト部分を揃える場合は、他の方法(例えば、HTMLタグを使用)が必要です。



<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Centered Text"
    android:gravity="center" />
  • android:gravity="center": テキストを水平・垂直方向に中央揃えします。
TextView textView = findViewById(R.id.textView);
textView.setGravity(Gravity.CENTER);
  • findViewById(R.id.textView): TextViewオブジェクトを取得します。
  • textView.setGravity(Gravity.CENTER): テキストを水平・垂直方向に中央揃えします。



HTMLタグの使用

  • <center></center>タグを使用して、テキストを水平方向に中央揃えします。
  • <p align="center"></p>タグを使用して、テキストを水平方向に中央揃えし、段落を作成します。
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="<center>Centered Text</center>" />

カスタムレイアウトの作成

  • RelativeLayoutまたはConstraintLayoutを使用して、TextViewを中央に配置します。
  • android:layout_centerInParent属性を使用して、TextViewを親レイアウトの中央に配置します。
<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android   :text="Centered Text"
        android:layout_centerInParent="true" />

</RelativeLayout>

カスタムビューの作成

  • Viewクラスを継承して、独自のTextViewを作成します。
  • onDrawメソッドで、テキストを描画する際に中央揃えの計算を行います。
public class CenteredTextView extends TextView {

    @Override
    protected void onDraw(Canvas canvas) {
        // テキストのサイズを取得
        Paint paint = getPaint();
        float textWidth = paint.measureText(getText().toString());
        float textHeight = paint.getTextSize();

        // 中央揃えの計算
        float x = (getWidth() - textWidth) / 2;
        float y = (getHeight() - textHeight) / 2 + paint.getTextSize();

        // テキストを描画
        canvas.drawText(getText().toString(), x, y, paint);
    }
}

android textview

android textview

Androidアプリでアクティビティの状態を保存する代替方法

Androidアプリでは、ユーザーがアプリを一時停止したり、画面を回転させたりすると、アクティビティが再作成されます。このとき、アクティビティの現在の状態を保持するために、saveInstanceState()メソッドを使用します。オーバーライドする: アクティビティクラスでsaveInstanceState()メソッドをオーバーライドします。