Mục tiêu
Xác định thiết bị đang ở Portrait hay Landscape để xử lý logic tương ứng.
Cách làm
Bước 1: Tạo project
Bước 2: Layout activity_main.xml
<LinearLayout ... android:gravity="center" android:orientation="vertical">
<TextView android:id="@+id/text" android:textSize="28sp" android:textAlignment="center" android:layout_width="match_parent" android:layout_height="wrap_content" />
</LinearLayout>
Bước 3: MainActivity.java
public class MainActivity extends AppCompatActivity {
TextView textview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textview = findViewById(R.id.text);
int orientation = getResources().getConfiguration().orientation;
if (orientation == Configuration.ORIENTATION_PORTRAIT) {
textview.setText("Portrait mode (Dọc)");
} else {
textview.setText("Landscape mode (Ngang)");
}
}
}
Code cốt lõi:
int orientation = getResources().getConfiguration().orientation;
if (orientation == Configuration.ORIENTATION_PORTRAIT) {
// Dọc
} else if (orientation == Configuration.ORIENTATION_LANDSCAPE) {
// Ngang
}
Kết quả
Chế độ dọc:

Xoay ngang:

Mở rộng: Lắng nghe thay đổi orientation
Override onConfigurationChanged(Configuration newConfig) trong Activity (cần khai báo android:configChanges="orientation|screenSize" trong Manifest).
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
// Xử lý khi xoay ngang
} else {
// Xử lý khi xoay dọc
}
}