Layout trên bài học lập trình android

Thảo luận trong 'Tư vấn - Du học - Tuyển sinh' bắt đầu bởi t11nguyen, 27 Tháng sáu 2017.

  1. t11nguyen

    t11nguyen Member Thành viên

    Bài viết:
    141
    Đã được thích:
    0
    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


    android:eek:rientation="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.



    android:eek:rientation="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.
     
    Cùng đọc NỘI QUY DIỄN ĐÀN và ý thức thực hiện cùng BQT xây dựng cộng đồng thêm vững mạnh bạn nhé
    ***** Xin đừng Spam vì một diễn đàn trong sạch *****
Địa chỉ thu mua do cu ho chi minh uy tín, Official Premium Account Reseller Premiumkeystore.com Easily, Instant delivery & Trusted.

Chia sẻ trang này