Diendanraovataz.net - Diễn đàn rao vặt - Đăng tin mua bán - Quảng cáo miễn phí - Hiệu quả - Trong phần này chúng ta sẽ Tìm hiểu một số mẫu layout trong Android. Layout sẽ quy định kích thước cũng như sự xếp đặt của những View trên màn hình. Android với số đông lớp layout, LinearLayout sẽ xếp đặt những View trên một hàng hoặc một cột, FrameLayout chỉ hiển thị một View, RelativeLayout xếp đặt những View theo mối quan hệ giữa chúng, GridLayout xếp đặt những View theo dạng bảng. Hiển thị ảnh với FrameLayout Bên trong thư mục res của project với những thư mục drawable để chúng ta đặt những file tài nguyên vào trong ngừng thi côngĐây và chúng ta với thể tham chiếu tới chúng trong file layout tiện lợi. chẳng hạn ở đây mình đặt một file ảnh với tên zamok.jpg trong thư mục drawable-hdpi. main.xml android:layout_width="match_parent" android:src="@drawable/zamok" /> Trong file main.xml, chúng ta tiêu dùng FrameLayout làm cho ViewGroup chính, bên trong FrameLayout này chúng ta đặt 1 thẻ ImageView. thuộc tính layout_gravity sẽ bố trí FrameLayout ở các vị trí khác nhau, ở đây top nghĩa là đưa lên đầu màn hình, bên cạnh đó còn có các giá trị khác như bottom, left, right, center... thuộc tính layout_width và layout_height có giá trị wrap_content sẽ quy định kích thước layout vừa đủ để bọc lấy các thành phần bên trong nó. android:layout_width="match_parent" android:src="@drawable/zamok" /> Lớp ImageView sẽ hiển thị ảnh, con đường dẫn đến file ảnh được truyền vào thuộc tính android:src. LinearLayout Trong thí dụ dưới đây, chúng ta sẽ kiểu dáng 1 hàng các Button. main.xml androidrientation="horizontal" android:layout_width="match_parent" android:layout_height="match_parent" > <> android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="Button2" /> <> android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="Button3" /> <> android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="Button4" /> Lớp LinearLayout sẽ bố trí các View theo hàng hoặc theo cột. androidrientation="horizontal" android:layout_width="match_parent" android:layout_height="match_parent" > thuộc tính width và height có giá trị match_parent nghĩa là vừa khít có kích thước của đồ vật. android:layout_width="wrap_content" android:text="Button1" /> Mỗi Button có width và height là wrap_content, nghĩa là kích thước của chúng vừa đủ để bọc lấy đoạn text bên trong nó. Xem các bài học lập trình android Thiết kế bằng Java Ngoài việc kiểu dáng trong file layout, chúng ta cũng có thể kiểu dáng trong file Activity. MainActivity.java import android.app.Activity; import android.os.Bundle; import android.widget.Button; import android.widget.LinearLayout; Ở đây chúng ta cũng kiểu dáng lại giống như thí dụ trước là đặt 4 Button nằm trên cộng 1 hàng. 1 2 Button btn1 = new Button(this); btn1.setText("Button"); Để tạo Button thì chúng ta dùng đến lớp android.widget.Button, phương thức setText() sẽ thiết lập nội dung Button. Phương thức setContentView() sẽ nhận đối tượng LinearLayout thay vì nhận ID của file XML như trước. Kết hợp các Layout Chúng ta có thể lồng các layout vào nhau để hài hòa chúng lại. Trong thí dụ này chúng ta lồng LinearLayout vào bên trong Framelayout. FrameLayout có kích thước vừa đủ để bọc lấy các phần tử bên trong nó. các phần tử bên trong FrameLayout sẽ nằm chính giữa màn hình theo thuộc tính layout_gravity là center. LinearLayout bên trong FrameLayout cất 4 Button được bố trí theo chiều dọc. RelativeLayout RelativeLayout bố trí các View dựa trên vị trí của chúng có nhau hoặc có View cha. Trong thí dụ này chúng ta hiển thị 1 EditText và 2 Button. EditText sẽ có bề ngang chiếm đông đảo màn hình, chiều cao chỉ vừa đủ bọc lấy đoạn text bên trong. bên cạnh đó thuộc tính marginTop quy định EditText bí quyết cạnh trên của màn hình 10dp. Chúng ta có 2 Button, trong chậm tiến độ Button “Send” sẽ được đặt phía dưới EditText nhờ vào thuộc tính layout_below, thuộc tính này nhận id của EditText. Button “Clear” được đặt phía dưới EditText và nằm phía bên phải Button “Send”, ở đây chúng ta dùng thêm thuộc tính layout_toRightOf để chỉ định View nằm phía bên phải của View nào. GridLayout GridLayout bố trí các View con theo dạng bảng, bảng bao gồm nhiều hàng và cột, hàng và cột giao nhau tạo thành các ô, 1 View có thể chiếm 1 hoặc nhiều ô. thuộc tính gravity cho biết View sẽ được đặt ở đâu trong bảng. main.xml Trong thí dụ này chúng ta có 1 GridLayout cất 1 đội ngũ các Button. thuộc tính layout_row biểu hiện số hàng còn thuộc tính layout_column biểu hiện số cột, ở đây hàng 0 cột 0 nghĩa là Button này nằm ở góc trái phía trên bảng. Button ở đoạn code trên nằm ở ô (0,1) nhưng có chiều ngang dài thêm 2 ô do được thiết lập trong thuộc tính columnSpan nhưng chúng ta phải khai báo thêm thuộc tính layout_gravity là fill_horizontal, giả dụ không thì Button này vẫn sẽ có kích thước như cũ. như vậy Button ở đoạn code trên nằm ở hàng 1 cột 0, thuộc tính layout_rowSpan quy định chiều cao của Button này dài thêm 3 hàng, thuộc tính columnSpan quy định Button này dãn kích thước theo chiều ngang thêm 5 cột nữa, thuộc tính layout_gravity là fill sẽ lấp đầy khoảng trống được dãn ra chậm tiến độ. Button ở đoạn code trên nằm ở giữa cột nhờ vào thuộc tính layout_gravity là center_horizontal.