Khối kiến trúc nền móng cho giao diện UI là một đối tượng View được tạo từ lớp View và chiếm một khu vực hình chữ nhật trên màn hình và chịu bổn phận để vẽ và xử lý sự kiện. View là lớp cơ sở cho Widget, mà được dùng để tạo các thành phần UI có tính tương tác như button, các trường text, …
ViewGroup là một lớp con của View và cung cấp Container vô hình mà giữ các View khác hoặc các ViewGroup khác và định nghĩa các thuộc tính Layout của chúng.
Tại tầng thứ ba, chúng ta có nhiều Layout khác nhau mà là lớp phụ của lớp ViewGroup và một Layout đặc trưng định nghĩa cấu trúc nhìn thấy cho một giao diện UI trong Android và có thể được tạo hoặc tại runtime bởi sử dụng các đối tượng View/ViewGroup hoặc bạn có thể khai báo Layout của bạn bởi sử dụng XML file đơn giản là main_Layoutxml, được đặt trong thư mục res/layout của Project.
LAYOUT PARAMS
Chương này chỉ dẫn chi tiết về cách tạo GUI của bạn dựa trên Layout được định nghĩa bên trong XML file. Một Layout có thể chứa bất cứ kiểu Widget nào như Button, Label, Textbox, … Dưới đây là một thí dụ đơn giản về XML file có LinearLayout:
public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
Các loại Layout trong Android
Android cung cấp một số Layout để bạn sử dụng trong hồ hết các áp dụng Android để cung cấp cái nhìn và cảm nhận khác nhau:
Stt | Layout & mô tả |
---|---|
1 |
LinearLayout là một view group mà căn chỉnh các view con theo một hướng nào đó: chiều dọc hay chiều ngang |
2 |
RelativeLayout là một view group mà hiển thị các view con trong các vị trí tương hợp với nhau |
3 |
TableLayout là một view mà nhóm tất tật các view vào trong các hàng và các cột |
4 |
AbsoluteLayout cho phép bạn xác định vị trí chuẩn xác của các view con |
5 |
FrameLayout là một placeholder trên màn hình mà bạn có thể dùng để hiển thị một view đơn |
6 |
ListView là một view group mà hiển thị một danh sách item có thể scroll |
7 |
GridView là một view group mà hiển thị các item trong một lưới hai chiều có thể scroll |
Các thuộc tính của Layout trong Android
Mỗi Layout có một tụ hội các thuộc tính mà định nghĩa các thuộc tính mang tính thị giác cho Layout Có một số thuộc tính chúng cho cả thảy các Layout và cũng có một số tính chất riêng cho một Layout cụ thể. Dưới đây là một số thuộc tính chung và sẽ được ứng dụng cho cả thảy Layout:
Attribute | bộc lộ |
---|---|
android:id | Đây là ID mà nhận diện duy nhất View |
android:layout_width | Đây là độ rộng của Layout |
android:layout_height | Đây là chiều cao của Layout |
android:layout_marginTop | Đây là không dâm phụ (extra space) trên cạnh trên của Layout |
android:layout_marginBottom | Đây là extra space trên cạnh dưới của Layout |
android:layout_marginLeft | Đây là extra space trên cạnh trái của Layout |
android:layout_marginRight | Đây là extra space trên cạnh phải Layout |
android:layout_gravity | Xác định cách các view con được đặt tại đâu |
android:layout_weight | Xác định có bao nhiêu extra space trong Layout nên được cấp phát tới View đó |
android:layout_x | Xác định tọa độ x của Layout |
android:layout_y | Xác định tọa độ y của Layout |
android:layout_width | Đây là độ rộng Layout |
android:layout_width | Đây là chiều cao Layout |
android:paddingLeft | Đây là left padding được điền cho Layout |
android:paddingRight | Đây là right padding được điền cho Layout |
android:paddingTop | Đây là top padding được điền cho Layout |
android:paddingBottom | Đây là bottom padding được điền cho Layout |
Ở đây, width và height là kích cỡ của Layout/View mà có thể được xác định theo dp (Density-independent pixel), sp (Scale-independent pixel), pt (các point là 1/72 inch), px (pixel), mm (mili met), và in (inch).
Bạn có thân xác định width và height với các ước lượng khá xác thực, nhưng thẳng băng hơn, bạn sẽ sử dụng một trong những hằng sau để thiết lập width và height: −
android:layout_width=wrap_content Nói cho view của bạn tự xếp đặt kích cỡ được đề nghị bởi nội dung của nó.
android:layout_width=fill_parent Nói cho view của bạn trở thành lớn bằng view cha của nó.
tính chất gravity đóng vai trò quan yếu trong việc đặt vị trí cho đối tượng view và nó có thể nhận một hoặc nhiều (được phân biệt bởi ) các giá trị hằng sau:
Constant | Value | biểu đạt |
---|---|---|
top | 0x30 | Đẩy đối tượng lên trên cùng của container, không thay đổi kích cỡ của nó |
bottom | 0x50 | Đẩy đối tượng xuống dưới cùng của container, không thay đổi kích cỡ của nó |
left | 0x03 | Đẩy đối tượng sang bên trái của container, không thay đổi kích cỡ của nó |
right | 0x05 | Đẩy đối tượng sang bên phải của container, không đổi thay kích cỡ của nó |
center_vertical | 0x10 | Đặt đối tượng vào chính giữa theo chiều dọc của container, không thay đổi kích cỡ của nó |
fill_vertical | 0x70 | Tăng kích cỡ theo chiều dọc của đối tượng nếu cần để nó điền đầy container |
center_horizontal | 0x01 | Đặt đối tượng vào chính giữa theo chiều ngang của container, không thay đổi kích cỡ của nó |
fill_horizontal | 0x07 | Tăng kích cỡ theo chiều ngang của đối tượng nếu cần để nó điền đầy container |
center | 0x11 | Đặt đối tượng vào chính giữa của container theo cả chiều ngang và dọc, không thay đổi kích cỡ của nó |
fill | 0x77 | Tăng kích cỡ theo chiều ngang và dọc của đối tượng nếu cần để nó điền đầy container |
clip_vertical | 0x80 | Tùy chọn bổ sung mà có thể được thiết lập để có các cạnh trên và/hoặc dưới của view con được cắt theo giới hạn của container. Việc cắt dựa trên vertical gravity: một top gravity sẽ cắt cạnh dưới, một bottom gravity sẽ cắt cạnh trên, và nếu không sẽ cắt cả hai cạnh |
clip_horizontal | 0x08 | Tùy chọn bổ sung mà có thể được thiết lập để có các cạnh trái và/hoặc phải của view con được cắt theo giới hạn của container. Việc cắt dựa trên horizontal gravity: một left gravity sẽ cắt cạnh phải, một right gravity sẽ cắt cạnh trái, và nếu không sẽ cắt cả hai cạnh |
start | 0x00800003 | Đẩy đối tượng tới phần đầu của container, không đổi thay kích cỡ của nó |
end | 0x00800005 | Đẩy đối tượng tới phần cuối của container, không đổi thay kích cỡ của nó |
View ID trong Android
Một đối tượng View có thể có một ID độc nhất vô nhị được gán tới nó, mà sẽ nhận diện View đó một cách duy nhất bên trong cấu trúc cây. Cú pháp cho một ID, bên trong một thẻ XML là: −
android:id="@+id/my_button" Sau đây là thể hiện ngắn gọn về các ký hiệu @ và +: − tượng trưng @ tại phần đầu của chuỗi chỉ rằng XML Parser nên phân tích cú pháp và mở mang phần còn lại của chuỗi ID và nhận diện nó như là một ID resource. biểu trưng + nghĩa rằng đây là một tên resource mới mà phải được tạo và được thêm tới các Resource của chúng ta. Để tạo một sự tả của đối tượng View và bắt nó từ Layout, dùng cú pháp sau: −
Button myButton = (Button) findViewById(R.id.my_button);
No comments:
Post a Comment