Android - Thiết kế giao diện người dùng
Trong chương này, chúng ta sẽ xem xét các thành phần giao diện người dùng khác nhau của màn hình android. Chương này cũng bao gồm các mẹo để thiết kế giao diện người dùng tốt hơn và cũng giải thích cách thiết kế giao diện người dùng.
Thành phần màn hình giao diện người dùng
Giao diện người dùng điển hình của ứng dụng Android bao gồm thanh tác vụ và vùng nội dung ứng dụng.
- Thanh hành động chính
- Xem điều khiển
- Khu vực nội dung
- Thanh tác vụ tách
Các thành phần này cũng đã được hiển thị trong hình ảnh bên dưới -
Hiểu các thành phần màn hình
Đơn vị cơ bản của ứng dụng Android là hoạt động. Giao diện người dùng được định nghĩa trong tệp xml. Trong quá trình biên dịch, mỗi phần tử trong XML được biên dịch thành lớp GUI của Android tương đương với các thuộc tính được biểu diễn bằng các phương thức.
View và ViewGroups
Một hoạt động bao gồm các lượt xem. Chế độ xem chỉ là một widget xuất hiện trên màn hình. Nó có thể là nút, v.v. Một hoặc nhiều khung nhìn có thể được nhóm lại với nhau thành một GroupView. Ví dụ về ViewGroup bao gồm các bố cục.
Các loại bố cục
Có nhiều kiểu bố trí. Một số trong số đó được liệt kê dưới đây -
- Bố cục tuyến tính
- Bố cục tuyệt đối
- Bố cục bảng
- Bố cục khung hình
- Giao diện tương đối
Bố cục tuyến tính
Bố cục tuyến tính được chia thành bố cục ngang và dọc. Nó có nghĩa là nó có thể sắp xếp các khung nhìn trong một cột hoặc trong một hàng. Đây là mã của bố cục tuyến tính (dọc) bao gồm chế độ xem văn bản.
<?xml version=”1.0” encoding=”utf-8”?>
<LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android”
android:layout_width=”fill_parent”
android:layout_height=”fill_parent”
android:orientation=”vertical” >
<TextView
android:layout_width=”fill_parent”
android:layout_height=”wrap_content”
android:text=”@string/hello” />
</LinearLayout>
AbsoluteLayout
AbsoluteLayout cho phép bạn chỉ định vị trí chính xác của các phần tử con của nó. Nó có thể được khai báo như thế này.
<AbsoluteLayout
android:layout_width=”fill_parent”
android:layout_height=”fill_parent”
xmlns:android=”http://schemas.android.com/apk/res/android” >
<Button
android:layout_width=”188dp”
android:layout_height=”wrap_content”
android:text=”Button”
android:layout_x=”126px”
android:layout_y=”361px” />
</AbsoluteLayout>
TableLayout
TableLayout nhóm các dạng xem thành hàng và cột. Nó có thể được khai báo như thế này.
<TableLayout
xmlns:android=”http://schemas.android.com/apk/res/android”
android:layout_height=”fill_parent”
android:layout_width=”fill_parent” >
<TableRow>
<TextView
android:text=”User Name:”
android:width =”120dp”
/>
<EditText
android:id=”@+id/txtUserName”
android:width=”200dp” />
</TableRow>
</TableLayout>
Giao diện tương đối
RelativeLayout cho phép bạn chỉ định cách các view con được định vị tương đối với nhau. Nó có thể được khai báo như thế này.
<RelativeLayout
android:id=”@+id/RLayout”
android:layout_width=”fill_parent”
android:layout_height=”fill_parent”
xmlns:android=”http://schemas.android.com/apk/res/android” >
</RelativeLayout>
FrameLayout
FrameLayout là một trình giữ chỗ trên màn hình mà bạn có thể sử dụng để hiển thị một chế độ xem duy nhất. Nó có thể được khai báo như thế này.
<?xml version=”1.0” encoding=”utf-8”?>
<FrameLayout
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:layout_alignLeft=”@+id/lblComments”
android:layout_below=”@+id/lblComments”
android:layout_centerHorizontal=”true” >
<ImageView
android:src = “@drawable/droid”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content” />
</FrameLayout>
Ngoài các thuộc tính này, còn có các thuộc tính khác phổ biến trong tất cả các dạng xem và Nhóm xem. Chúng được liệt kê dưới đây -
Sr.No | Xem & mô tả |
---|---|
1 | layout_width Chỉ định chiều rộng của View hoặc ViewGroup |
2 | layout_height Chỉ định chiều cao của View hoặc ViewGroup |
3 | layout_marginTop Chỉ định thêm không gian ở phía trên cùng của View hoặc ViewGroup |
4 | layout_marginBottom Chỉ định thêm không gian ở phía dưới cùng của View hoặc ViewGroup |
5 | layout_marginLeft Chỉ định không gian bổ sung ở phía bên trái của View hoặc ViewGroup |
6 | layout_marginRight Chỉ định thêm không gian ở phía bên phải của View hoặc ViewGroup |
7 | layout_gravity Chỉ định cách các Chế độ xem con được định vị |
số 8 | layout_weight Chỉ định lượng không gian thừa trong bố cục sẽ được phân bổ cho Chế độ xem |
Đơn vị đo lường
Khi bạn chỉ định kích thước của một phần tử trên giao diện người dùng Android, bạn nên nhớ các đơn vị đo lường sau.
Sr.No | Đơn vị & mô tả |
---|---|
1 | dp Pixel không phụ thuộc vào mật độ. 1 dp tương đương với một pixel trên màn hình 160 dpi. |
2 | sp Pixel không phụ thuộc vào tỷ lệ. Điều này tương tự như dp và được khuyến nghị để chỉ định kích thước phông chữ |
3 | pt Điểm. Một điểm được xác định là 1/72 inch, dựa trên kích thước màn hình vật lý. |
4 | px Pixel. Tương ứng với pixel thực tế trên màn hình |
Mật độ màn hình
Sr.No | Mật độ & DPI |
---|---|
1 | Low density (ldpi) 120 dpi |
2 | Medium density (mdpi) 160 dpi |
3 | High density (hdpi) 240 dpi |
4 | Extra High density (xhdpi) 320 dpi |
Tối ưu hóa bố cục
Dưới đây là một số nguyên tắc để tạo bố cục hiệu quả.
- Tránh lồng ghép không cần thiết
- Tránh sử dụng quá nhiều Lượt xem
- Tránh làm tổ sâu