CĂN BẢN
INTENTS
GIAO DIỆN
CÁC KHÁI NIỆM
VÍ DỤ
TÀI LIỆU
HỌC LẬP TRÌNH ANDROID
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Ví dụ về định hướng màn hình trong Android

Khi phát triển ứng dụng cho Android, định hướng màn hình là một trong những yếu tố quan trọng để cải thiện trải nghiệm người dùng. Trong bài viết này, chúng ta sẽ tìm hiểu cách định hướng màn hình trong Android và các kỹ thuật phù hợp để đáp ứng nhu cầu của người dùng.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Định hướng màn hình Android

Định hướng màn hình là cách mà ứng dụng hiển thị trên màn hình điện thoại, tablet hoặc các thiết bị khác. Có hai kiểu định hướng màn hình chính trong Android: đứng (Portrait) và ngang (Landscape).

Khi ứng dụng được thiết kế và phát triển đúng cách, định hướng màn hình sẽ giúp người dùng dễ dàng sử dụng ứng dụng trên mọi thiết bị. Điều này làm tăng tính tiện dụng và trải nghiệm người dùng của ứng dụng.

Cách định hướng màn hình trong Android

Sử dụng AndroidManifest.xml

Để định hướng màn hình, bạn có thể sử dụng thuộc tính android:screenOrientation trong file AndroidManifest.xml. Thuộc tính này cho phép bạn thiết lập hướng màn hình của ứng dụng của bạn.

Bài viết này được đăng tại [free tuts .net]

Syntax:

<activity android:name="package_name.Your_ActivityName"  
      android:screenOrientation="orirntation_type">  
</activity>  

Example:

<activity android:name=" example.javatpoint.com.screenorientation.MainActivity"  
     android:screenOrientation="portrait">  
</activity>  
<activity android:name=".SecondActivity"  
     android:screenOrientation="landscape">  
</activity>  

Các thành phần của thuộc tính screenOrientation như sau:

unspecified: nó là giá trị mặc định. Trong trường hợp này hệ thống tự động chọn hướng.

portrait: chiều cao hơn chiều rộng

landscape: chiều rộng hơn chiều cao

sensor: hướng được xác định bới cảm biến hướng thiết bị. (orientation device)

Sử dụng method trong Java

Ngoài cách sử dụng thuộc tính trong file AndroidManifest.xml, bạn cũng có thể sử dụng method trong java để thiết lập định hướng màn hình của ứng dụng của bạn. Phương thức setRequestedOrientation() cho phép bạn thiết lập định hướng màn hình của ứng dụng.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}

Bạn có thể sử dụng ActivityInfo.SCREEN_ORIENTATION_PORTRAIT hoặc ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE để thiết lập định hướng màn hình theo ý muốn.

Sử dụng một số kỹ thuật khác

Bên cạnh các phương pháp cơ bản của thiết lập định hướng màn hình, còn có một số kỹ thuật khác để tối ưu hóa trải nghiệm người dùng.

Không khóa định hướng màn hình

Trong một số trường hợp, người dùng có thể muốn xoay màn hình để dễ dàng sử dụng ứng dụng trên các thiết bị khác nhau. Vì vậy, nên cho phép người dùng xoay màn hình theo ý muốn.

Bạn có thể tắt khóa định hướng màn hình bằng cách bỏ thuộc tính android:screenOrientation trong file AndroidManifest.xml hoặc sử dụng phương thức setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED) trong java.

Xử lý sự kiện xoay màn hình
Khi người dùng xoay màn hình, ứng dụng sẽ phải xử lý lại các yếu tố hiển thị trên màn hình để đảm bảo trải nghiệm người dùng được tốt hơn. Bạn có thể sử dụng phương thức onConfigurationChanged() để xử lý sự kiện xoay màn hình.

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);

    if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
        // Xử lý hiển thị theo định hướng ngang
    } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
        // Xử lý hiển thị theo định hướng dọc
    }
}

Sử dụng bố cục động
Sử dụng bố cục động có thể giúp ứng dụng của bạn tự động thích ứng với định hướng màn hình của thiết bị.

Ví dụ: bạn có thể sử dụng RelativeLayout để đặt các phần tử trên màn hình và thiết lập các quy tắc phù hợp để tự động điều chỉnh.

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/textView"
        android:text="Hello World!"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true" />

</RelativeLayout>

Sử dụng giải pháp thứ hai
Nếu ứng dụng của bạn không thể hiển thị đúng với các định hướng màn hình khác nhau, bạn có thể cung cấp một giải pháp thứ hai cho người dùng để lựa chọn.

Ví dụ: bạn có thể hiển thị một thông báo yêu cầu người dùng xoay màn hình để sử dụng ứng dụng hoặc cung cấp một nút để chuyển đổi giữa chế độ ngang và dọc như sau:

activity_main.xml

<Button
    android:id="@+id/switchOrientationButton"
    android:text="Switch Orientation"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onClick="onSwitchOrientationButtonClick" />

MainActivity.java

public void onSwitchOrientationButtonClick(View view) {
    int currentOrientation = getResources().getConfiguration().orientation;

    if (currentOrientation == Configuration.ORIENTATION_LANDSCAPE) {
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    } else if (currentOrientation == Configuration.ORIENTATION_PORTRAIT) {
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
    }
}

Tổng kết

Định hướng màn hình là một yếu tố quan trọng trong trải nghiệm người dùng của ứng dụng Android. Bằng cách tối ưu hóa định hướng màn hình, bạn có thể tăng tính năng, tăng khả năng sử dụng, và tăng độ hấp dẫn của ứng dụng. Các phương pháp và kỹ thuật mà chúng tôi đã đề cập trong bài viết này sẽ giúp bạn đạt được điều đó và cung cấp trải nghiệm người dùng tốt nhất có thể.

Cùng chuyên mục:

Tìm hiểu về vòng đời của Activity trong Android

Tìm hiểu về vòng đời của Activity trong Android

AlarmManager trong Android

AlarmManager trong Android

Menu trong Android

Menu trong Android

Fragments trong Android

Fragments trong Android

SearchView trong Android

SearchView trong Android

TabLayout trong Android

TabLayout trong Android

ViewStub trong Android

ViewStub trong Android

Image Slider trong Android

Image Slider trong Android

Trình chuyển đổi hình ảnh (Image Switcher) trong Android

Trình chuyển đổi hình ảnh (Image Switcher) trong Android

ScrollView trong Android

ScrollView trong Android

ProgressBar trong Android

ProgressBar trong Android

Đồng hồ Analog và đồng hồ kỹ thuật số trong Android

Đồng hồ Analog và đồng hồ kỹ thuật số trong Android

Cách dùng TimePicker trong Android

Cách dùng TimePicker trong Android

Cách dùng DatePicker trong Android

Cách dùng DatePicker trong Android

Cách dùng SeekBar trong Android

Cách dùng SeekBar trong Android

Cách dùng WebView trong Android

Cách dùng WebView trong Android

Cách dùng RatingBar trong Android

Cách dùng RatingBar trong Android

Cách dùng ListView trong Android

Cách dùng ListView trong Android

AutoCompleteTextView trong Android

AutoCompleteTextView trong Android

Spinner trong Android

Spinner trong Android

Top