Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Android

Lấy orientation (chế độ xoay) màn hình hiện tại trong Android

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:

Lấy orientation (chế độ xoay) màn hình hiện tại trong Android

Xoay ngang:

Lấy orientation (chế độ xoay) màn hình hiện tại trong Android

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
    }
}