How to work with layouts and widgets
- An introduction to layouts and widgets
- How to work with layouts
- How to work with widgets
----------------------
1. An introduction to layouts and widgets
- Layout định nghĩa cấu trúc cho giao diện người dùng. Các loại layout sau:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9pIG7KbXBNeu95nyh6zyy_3a4-pH9dc9ZwzCBi8DIJNkwIQfsZhLp-7s8uhmV_79whA89xiZbsD2IvyP4qsIlTdwqhbALxy1h6pQbfI_lWUFUKUxXnnHFxDvyJWBBTLMLoJkWMprcPxA-/s1600/cacloai_layout.PNG)
- Widgets các đối tượng dùng để tạo giao diện trong android. Danh sách các loại widgets:
Sau đây là hệ thống phân lớp của Android widgets và layout.
- Layout định nghĩa cấu trúc cho giao diện người dùng. Các loại layout sau:
- Widgets các đối tượng dùng để tạo giao diện trong android. Danh sách các loại widgets:
Sau đây là hệ thống phân lớp của Android widgets và layout.
2. How to work with layouts:
2.1 Linear layout: Hay được sử dụng nhất, cho phép bố trí các phần tử trong nó theo dạng nằm ngang hoặc nằm dọc bằng cách sử dụng thuộc tính android:orientation=:
"horizontal" sắp xếp theo hàng ngang
"vertical" sắp xếp hàng dọc.
Giải thích một số thuộc tính:
+ android:layout_width: độ rộng của thành phần wrap_content hoặc match_parrent
+ android:layout_height: độ cao của thành phần
. wrap_content: co nhỏ vừa nội dung chứa nó
. match_parrent (fill_parrent tương tự như match_parrent nhưng dùng cho <= API 8): giãn nội dung bằng thằng chứa nó
+ android:layout_weight: độ rộng của thành phần so với các thành phần khác, ví dụ trong một hàng ngang có chứa 3 button lần lượt set giá trị weight = 2, weight = 1, weight = 1 thì kích thước chiều ngang của 3 button lần lượt chiếm: 50%, 25% và 25% chiều ngang.
+ android:gravity: canh trọng tâm của view của chính nó.
![](data:image/png;base64,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zB6YZhT+8Re4pe7oJV+H+OoQmVy9evXo0aPkr9evXz906ND333//ySefPPC5u3btunDhwqN8d2Hj6tWrhw4dGupfY+HjRB00DDUZ5PKpMktMTGSkpja1tChU6kgMgJzs4vr3EFFmA6DMaEN/07Rao+YLRdnZ2XAEjMlkqq+vb2pq8nq9drtdqVSSAAjK7GG5cuXK008/ff3ffgV/feedd/7whz/09PTs2bOH+rDdu3f/85//pN5z4cKF/fv3k7/evn17586dP/zwwwO/4+BH3rp167XXXrtz586ofhIK+/bt+/LLL0f4yIDSOn/+PPWn8yMWPk7U2Yzp6ekwNR/ajCTN2DebsbFJoYxImfV2e/1D+CizAVBmtBnVBBBSmZWVlRmNRthn5vV6q6urFQoFjLOiJzNyHY9Zrv/br+B29+7d9evXnzlz5vvvv//iiy/IA/7xj3+sXr16z549t27dOnLkyPHjx//6179+++23p06dIo85cODAwoUL33///Xv37v34448fffTRu+++e/78eZ/Pd/To0YsXL/p8vpMnT547d476SJ/Pd+/evffff3/x4sV///vf7927d/Dgwc8+++z48eN379798ssv9+zZ8+WXX969e9fn8x08ePD06dN/+tOfPvnkE7jn66+/3rt37xdffPHll1/+9NNP8E7Onz//7LPP7ty5E7776dOn9+7d++mnn965c+fatWuHDh26d+/eDz/88Omnn547d+65557buXPn119//dlnn4FNv/nmm2+++ebKlStfffWVz+e7c+fOF198sXfv3hMnTvh8vhMnTvT09Aj/+Evh7+9w37iXuqO36L/vFv7+TlTKDPaZQY+RxEAgjk/GWTEYDKfLrVCq3Z4IlNn9nUb/NmN/IAQDIMhDQv8IGI1WIxSJs7OzBQJBeXk5yKypqcnj8djtdkgzDj81fyiZkes4VWl+f416yM976dKljRs33rt37+LFi11dXeQBly5deuaZZw4ePPjTTz9t3779lVde+eqrr/bv3//GG2+Qx5w8eXLJkiXHjx/3+Xw7duw4cODAyZMn169f/9133508efK55567ceNGZ2fn1atXqY8Ejh079vTTT589e/bu3btz5sz561//eunSpb1797766qvnzp3buXPn3r17fT7fqlWrdu3adebMmU2bNh05cuTChQudnZ3Hjh37+9//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)
+ android:layout_gravity: Canh trọng tâm của view so với phần cha của nó.
![](data:image/png;base64,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gz/++GM0Gv3ll1++/PLLzz777Pz5811dXfBsPT09hw4dWrNmzVdffRWNRm/cuPHFF18cOnTo6tWr0Wj0+PHj169fj0ajp0+fvnTpErnzwoUL8Ay9vb1ff/11NBolQdLly5c//fTTI0eO3Lx588aNG2fOnIlGo4L/+q3wrZuiXf9kbegv2P7L3X+dSN8AWUIJ9gAUiZJhEkwm0xcIarT6YAhlgAbQWAYMRoNILJkxY4ZQKCwpKQEZqKmpCYVCLpcLKoUScpgEysCd6O3tXbduHRx5//mf/wnH3Pbt28+dOwc3/Pzzz59//vk777zT3d196tQpODchbvj555/hnp9++um9997761//ev369dOnT+/YsePbb7/du3fvoUOHenp63nrrrYsXL+7du3f//v3UO+Fru7u7d+zY8cUXX/z8888ff/zx22+/ffLkycuXL69bt+7MmTPHjx9fv379zZs3Dx8+vH79+jNnzhw+fHjHjh3RaHTHjh379++/cOHC1q1bv/zyS3i2vr6+06dPv/766xDNbN269cSJE998882mTZtu3br19ddf/+lPf+rq6tqwYcPPP/9M7vzmm2/+9Kc/RaPRCxcuwAdr166FY/eNN964cOHCZ599tmvXrhs3bmzYsCEajRa+dfPf1nwr+K/fmOv/35PrL8cSDVDnypFdxFAzSpUBtVaP28doAb1lQCgSZ2dn8Xg8tVrtcDg8Hk91dTV4AxqNBpJCidc+hjJwF/76179++eWXN27cIJlAqgxEo9FTp069//778AGEC9FolCoD0Wj0L3/5C5zFO3bsOHjw4NmzZ48dOwZP2NnZuXHjxu3bt9+6dQvu/OKLL6gvYM+ePadPn45Gox9//DHo0GefffbJJ5/AZ//85z9DCEIeWbdu3bVr19asWQNP+Pe//53IQDQa/emnnzZu3Njb23vhwoU333zz7NmzZ8+e3bJly9mzZ3t7e995553169fDtyN3RqPRzZs39/b2/vnPfz558mR0UAb279///vvvnz179syZM6+//vqtW7e2bdvW1dWV80Z39qYfC9+6yVj3W/7WG2PKABkoRF1CCUkh0jfAZDKD4YgaowGaQGMZMJqMIrE0OyuLz+dDpVAgEKiurg6FQlVVVeAN5Ofn5+TkoDfw8HDx4sVt27YdPHiwvb0dHrmLDMAfy9E7y8CWLVt27dq1d+/e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)
+ android:padding: Canh các đối tượng phía trong cách biên một khoảng cách (dp)
Ví dụ: Trong đối tượng A set giá trị android:padding = "5dp" tức là các khoảng cách từ đối tượng B tới các cạnh đối tượng A lần lượt là "5dp".
+ android:layout_margin: Canh vị trí của đối tượng với lề của layout một khoảng cách nào đó (dp)
Ví dụ 1: Thiết kế một Linear layout với 2 button xếp theo một cột (vertical orientation)
Ví dụ 2: Thiết kế LinearLayout như sau
Outline:
Mã code xml:
Ví dụ 4: Thiết kế giao diện máy tính cá nhân đơn giản
Outline:
Mã nguồn XML:
2.2 Table layout:
2.3 RelativeLayout:
- RelativeLayout là một view group hiển thị các thành phần con dựa vào mối quan hệ vị trí giữa chúng với nhau hoặc giữa chúng với thành phần cha chứa nó.
- Một số thuộc tính:
- Ví dụ 1: Dùng RelativeLayout tạo giao diện như sau
Mã XML:
- Ví dụ 2: Dùng RelativeLayout tạo giao diện như sau
Mã XML:
2.4: FrameLayout:
2.5: GridLayout:
2.6 TabHost Layout:
- Một TabHost Layout gồm có 3 phần : TabHost, TabWidget và FrameLayout
. TabHost: Là container chính chứa các Tab buttons và Tab contents
. TabWidget: Để định dạng cho các Tab buttons : Nhãn , icon, …
. FrameLayout: là container để chứa các layout cho Tab contens. Chỉ có FrameLayout là view group được dùng cho Tab contents, không thể dùng các loại Layout khác.
- Ví dụ: tạo giao diện như sau
2.1 Linear layout: Hay được sử dụng nhất, cho phép bố trí các phần tử trong nó theo dạng nằm ngang hoặc nằm dọc bằng cách sử dụng thuộc tính android:orientation=:
"horizontal" sắp xếp theo hàng ngang
"vertical" sắp xếp hàng dọc.
Giải thích một số thuộc tính:
+ android:layout_width: độ rộng của thành phần wrap_content hoặc match_parrent
+ android:layout_height: độ cao của thành phần
. wrap_content: co nhỏ vừa nội dung chứa nó
. match_parrent (fill_parrent tương tự như match_parrent nhưng dùng cho <= API 8): giãn nội dung bằng thằng chứa nó
+ android:layout_weight: độ rộng của thành phần so với các thành phần khác, ví dụ trong một hàng ngang có chứa 3 button lần lượt set giá trị weight = 2, weight = 1, weight = 1 thì kích thước chiều ngang của 3 button lần lượt chiếm: 50%, 25% và 25% chiều ngang.
+ android:gravity: canh trọng tâm của view của chính nó.
+ android:layout_gravity: Canh trọng tâm của view so với phần cha của nó.
+ android:padding: Canh các đối tượng phía trong cách biên một khoảng cách (dp)
Ví dụ: Trong đối tượng A set giá trị android:padding = "5dp" tức là các khoảng cách từ đối tượng B tới các cạnh đối tượng A lần lượt là "5dp".
. Các thuộc tính: android:paddingLeft="5dp" tức là khoảng cách (1) trong hình dưới bằng 5dp
. Các thuộc tính: android:paddingTop="5dp" tức là khoảng cách (2) trong hình dưới bằng 5dp
. Các thuộc tính: android:paddingRight="5dp" tức là khoảng cách (3) trong hình dưới bằng 5dp
. Các thuộc tính: android:paddingLeft="5dp" tức là khoảng cách (4) trong hình dưới bằng 5dp+ android:layout_margin: Canh vị trí của đối tượng với lề của layout một khoảng cách nào đó (dp)
Ví dụ 1: Thiết kế một Linear layout với 2 button xếp theo một cột (vertical orientation)
Ví dụ 2: Thiết kế LinearLayout như sau
Ví dụ 3: Thiết kế LinearLayout như sau
Mã code xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="5dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginBottom="5dp">
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="4" />
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="5" />
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="6" />
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="+" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="3"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginBottom="5dp"
android:layout_weight="3"
android:orientation="horizontal"
>
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="1" />
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="2" />
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="3" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="3"
android:orientation="horizontal"
>
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:text="0" />
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="." />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical" >
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="="
/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
Ví dụ 4: Thiết kế giao diện máy tính cá nhân đơn giản
Outline:
Mã nguồn XML:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="5dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginBottom="5dp">
<EditText
android:id="@+id/editText_hienthi"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:gravity="right" >
<requestFocus />
</EditText>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:id="@+id/btn_0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="0" />
<Button
android:id="@+id/btn_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="1" />
<Button
android:id="@+id/btn_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="2" />
<Button
android:id="@+id/btn_3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="3" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:id="@+id/btn_4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="4" />
<Button
android:id="@+id/btn_5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="5" />
<Button
android:id="@+id/btn_6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="6" />
<Button
android:id="@+id/btn_7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="7" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:id="@+id/btn_8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="8" />
<Button
android:id="@+id/btn_9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="9" />
<Button
android:id="@+id/btn_xoa"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="C" />
<Button
android:id="@+id/btn_tinh"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="=" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:id="@+id/btn_cong"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="+" />
<Button
android:id="@+id/btn_tru"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="-" />
<Button
android:id="@+id/btn_nhan"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="*" />
<Button
android:id="@+id/btn_chia"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="/" />
</LinearLayout>
</LinearLayout>
2.2 Table layout:
2.3 RelativeLayout:
- RelativeLayout là một view group hiển thị các thành phần con dựa vào mối quan hệ vị trí giữa chúng với nhau hoặc giữa chúng với thành phần cha chứa nó.
- Một số thuộc tính:
- Ví dụ 1: Dùng RelativeLayout tạo giao diện như sau
Mã XML:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.relativelayout.MainActivity"
>
<TextView
android:id="@+id/lblEmail"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dp"
android:text="Email" />
<EditText
android:id="@+id/edEmail"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/lblEmail"
/>
<TextView
android:id="@+id/lblPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/edEmail"
android:layout_marginTop="10dp"
android:padding="5dp"
android:text="Password"
/>
<EditText
android:id="@+id/edPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/lblPassword"
android:layout_marginBottom="10dp"
/>
<Button
android:id="@+id/btnLogin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@id/edPassword"
android:layout_centerHorizontal="false"
android:layout_centerInParent="false"
android:layout_centerVertical="false"
android:layout_marginRight="10dp"
android:text="Login"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="false"
android:layout_alignTop="@id/btnLogin"
android:layout_toRightOf="@id/btnLogin"
android:text="Cancel"
/>
</RelativeLayout>
- Ví dụ 2: Dùng RelativeLayout tạo giao diện như sau
Mã XML:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/tvURL"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="15dp"
android:text="URL:"
/>
<EditText
android:id="@+id/edtURL"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignBaseline="@id/tvURL"
android:layout_toRightOf="@id/tvURL"
/>
<Button
android:id="@+id/btnGo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@id/edtURL"
android:layout_below="@id/edtURL"
android:text="Go"
/>
<Button
android:id="@+id/btnClear"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@id/btnGo"
android:layout_toLeftOf="@id/btnGo"
android:text="Clear"
/>
</RelativeLayout>
2.4: FrameLayout:
2.5: GridLayout:
2.6 TabHost Layout:
- Một TabHost Layout gồm có 3 phần : TabHost, TabWidget và FrameLayout
. TabHost: Là container chính chứa các Tab buttons và Tab contents
. TabWidget: Để định dạng cho các Tab buttons : Nhãn , icon, …
. FrameLayout: là container để chứa các layout cho Tab contens. Chỉ có FrameLayout là view group được dùng cho Tab contents, không thể dùng các loại Layout khác.
- Ví dụ: tạo giao diện như sau
3. How to work with widgets:
3.1: TextView:
- Text không thể chỉnh sửa trực tiếp bởi người dùng. Thường sử dụng kèm với một đối tượng widgets khác.
- Các thuộc tính liên quan của TextView:
+ android:text="Text": giá trị của chính label
+ android:typeface
+ android:textStyle Kiểu chữ: bold, italic hoặc bold và italic
+ android:textColor="#FF00000" Định dạng màu chữ (RGB hex format)
3.2: EditText:
- EditText là class con của TextView
- Các thuộc tính liên quan của EditView:
+ android:autoText
+ android:capitalize
+ android:digits
+ android:singleLine
+ android:numeric
+ android:password
+ android:phoneNumber
3.3: Button:
- Button là class con của TextView
- Các thuộc tính liên quan của Button:
+
+
+
3.4: CheckBox:
3.5: RadioButton:
3.6: Spinner:
3.7: ProgressBar:
3.8: SeekBar:
3.9: RatingBar:
3.10: ImageView:
3.11: ImageButton:
3.12: DatePicker:
3.13: TimePicker:
3.14: CalendarView:
3.15: ScrollView:
--------------------
Bài tập:
1.
2.
3.
3.1: TextView:
- Text không thể chỉnh sửa trực tiếp bởi người dùng. Thường sử dụng kèm với một đối tượng widgets khác.
- Các thuộc tính liên quan của TextView:
+ android:text="Text": giá trị của chính label
+ android:typeface
+ android:textStyle Kiểu chữ: bold, italic hoặc bold và italic
+ android:textColor="#FF00000" Định dạng màu chữ (RGB hex format)
3.2: EditText:
- EditText là class con của TextView
- Các thuộc tính liên quan của EditView:
+ android:autoText
3.3: Button:
- Button là class con của TextView
- Các thuộc tính liên quan của Button:
+
3.5: RadioButton:
3.6: Spinner:
3.7: ProgressBar:
3.8: SeekBar:
3.9: RatingBar:
3.10: ImageView:
3.11: ImageButton:
3.12: DatePicker:
3.13: TimePicker:
3.14: CalendarView:
3.15: ScrollView:
--------------------
Bài tập:
1.
2.
3.