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_widthとandroid: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