Giới thiệu
Hướng dẫn này trình bày cách căn giữa văn bản theo chiều ngang (horizontal) và chiều dọc (vertical) trong TextView Android sử dụng thuộc tính gravity.
Các bước thực hiện
Bước 1: Tạo dự án mới
Mở Android Studio, chọn File → New Project và điền thông tin cần thiết.
Bước 2: Thiết kế giao diện (res/layout/activity_main.xml)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="16dp">
<!-- Chỉ căn giữa dọc -->
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:text="Văn bản căn giữa dọc (center_vertical)" />
<!-- Chỉ căn giữa ngang -->
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal"
android:text="Văn bản căn giữa ngang (center_horizontal)" />
</RelativeLayout>
Bước 3: Logic chính (src/MainActivity.java)
package app.com.sample;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Không cần code Java, mọi thứ xử lý bằng XML
}
}
Bước 4: Cấu hình Manifest (androidManifest.xml)
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
package="app.com.sample">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Các giá trị gravity phổ biến
| Giá trị | Mô tả |
|---|---|
center |
Căn giữa cả ngang và dọc (center_horizontal + center_vertical) |
center_horizontal |
Căn giữa theo chiều ngang |
center_vertical |
Căn giữa theo chiều dọc |
start / left |
Căn trái (start phụ thuộc RTL) |
end / right |
Căn phải (end phụ thuộc RTL) |
top |
Căn trên |
bottom |
Căn dưới |
fill_horizontal |
Giãn nở ngang |
fill_vertical |
Giãn nở dọc |
fill |
Giãn nở cả hai chiều |
Kết hợp nhiều giá trị
<TextView
android:gravity="center_horizontal|top" --> Căn giữa ngang, trên cùng
android:gravity="center|start" --> Căn giữa, trái (RTL-aware)
android:gravity="bottom|end" --> Dưới cùng, phải
/>
Lưu ý: gravity vs layout_gravity
- android:gravity - Căn chỉnh nội dung bên trong View (text, drawable)
- android:layout_gravity - Căn chỉnh View bên trong parent container
Chạy ứng dụng
Kết nối thiết bị Android, nhấn Run trong Android Studio. Hai TextView sẽ hiển thị căn giữa dọc và căn giữa ngang tương ứng.
