Professional Documents
Culture Documents
SE114 Tuan6
SE114 Tuan6
ViewGroup
CheckBox
Button
MenuOptions
ImageButton
ContextMenu
ImageView
Quick Search Box
ListView
3
Thành phần giao diện
ViewGroup
Cấu trúc phân cấp một giao diện ứng dụng Android
4
ViewGroup
Là các Widget Layout được dùng để bố trí các đối tượng khác trong một
screen.
1 2
Trong file XML layout Trong đoạn mã
( Thông thường và chương trình
cho giao diện ban - Tránh phức tạp
đầu ) trong các giao diện
- Cần hiểu biết sơ
lược về XML
6
Các thuộc tính cơ bản
Layout_width: Chiều rộng của View.
Layout_height: Chiều cao của View.
Layout_marginTop: Khoảng cách với biên trên của View.
Layout_marginBottom: Khoảng cách với biên dưới cùng của View.
Layout_left: Khoảng cách với biên trái của View.
Layout_right: Khoảng cách với biên phải của View.
Layout_gravity: Xác định vị trí của View.
Layout_weight: Phân chia tỉ lệ hiển thị diện tích trên màn hình (t ỉ l ệ tính
theo weight của từng view trên tổng s ố weight, các view không khai báo
weight thì sẽ xem qua wigth và height).
Layout_x: Tọa độ x của View.
Layout_y: Tọa độ y của View.
7
Layout
Layout được sử dụng nhằm mục đích thiết kế giao diện cho nhiều độ phân giải. Thường khi l ập trình
nên kết hợp nhiều layout với nhau để tạo ra giao diện bạn mong muốn.
Bố trí các thành phần giao diện theo chiều ngang, chiều
dọc nhưng trên một line duy nhất mà không xuống dòng.
Không phụ thuộc vào kích thước màn hình.
9
Layout
FrameLayout
Bố trí các đối tượng theo kiểu những đối tượng thuộc
Layer bên dưới sẽ bị che khuất bởi các đối tượng thuộc
Layer nằm trên.
ImageView
Learn – TextView
Android.c
om
10
Demo
11
Layout
AbsoluteLayout
Bố trí các Widget vào một vị trí bất kỳ trong Layout dựa vào 2 thuộc tính tọa độ x, y.
Ít được dùng vì tọa độ của các đối tượng luôn cố định và không tự điều chỉnh được tỉ l ệ kho ảng cách
giữa các đối tượng.
RetaliveLayout
12
Thuộc tính Relativelayout
13
Layout
TableLayout
Được sử dụng khi cần thiết kế một table chứa dữ liệu hoặc
cần bố trí các Widget theo các row và column.
14
Button
Được sử dụng nhiều trong hầu hết các ứng dụng Android.
Có 2 cách thiết kế giao diện một Button nh ư sau:
Thiết kế bằng XML
Thiết kế bằng code: mục đích là để cho phù hợp với hoàn cảnh, ví d ụ các nút game, các menu hay
các nút điều khiển,…
15
Button
Để custom một Widget nào đó ta phải tạo một class kế thừa từ class
Widget muốn custom, sau đó sử dụng hàm draw để vẽ lại Widget đó
như một Canvas.
16
ImageButton
ImageButton
17
ImageView
Được dùng để thể hiện một hình ảnh, giống ImageButton, ch ỉ khác là không có hình
dáng một Button.
<ImageView
android:id=“@+id/ImageView01”
android:layout_width=“wrap_content”
<ImageButton
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:id=“@+id/cmdButton1”
18
ListView
Được sử dụng để thể hiện một danh sách các thông tin theo t ừng cell.
Mỗi cell thường được load lên từ một file XML.
Để thể hiện một list thông tin lên một screen cần 3 y ếu t ố chính:
19
List View
20
TextView
Hiển thị văn bản và cho phép định dạng nội dung bằng thẻ html.
Ví dụ:
Nội dung TextView cũng có thể được định dạng bằng thẻ html
ngay trong XML.
21
Picker Views:
View này giúp bạn lựa chọn thời gian và ngày tháng trong hiển thị trong
Android. Android hỗ trợ việc này thông qua 2 view là:
+ TimePicker
+ DatePicker.
22
TIMEPICKER VIEW
23
DATEPICKER VIEW
Cũng giống như TimePicker View. DatePicker View giúp cho người dùng Android
có thể chọn và thay đổi ngày.
24
Display Views
Views này dùng để hiển thị hình ảnh trong m ột vùng đóng, danh sách
hình ảnh dịch chuyển theo chiều ngang.
25
Addition View
26
DigitalClock Views
27
CheckBox
Nhận 2 giá trị true hoặc false, cho phép chọn nhiều item cùng
một lúc.
Khai báo: CheckBox cb =new CheckBox(Context…);:
28
EditText
Được sử dụng như một TextField hoặc một TextBox.
Ví dụ:
android:singleLine=“tru
e” EditText trở thành
TextField, ngược lại là
TextBox
android:inputType=“…” sử
dụng để xác định phương
thức nhập cho EditText,
như Pasword, Email…
29
MenuOptions
Có 2 cách tạo một MenuOptions:
Tạo bằng code:
30
Thành phần Menu
31
Giới thiệu Menu
Menu là một phần quan trọng của giao diện người dùng của m ột hoạt đ ộng,
cung cấp cho người dùng một cách quen thuộc để thực hiện hành động. Android
cung cấp một khuôn khổ đơn giản để thêm các menu tiêu chuẩn
Có ba loại của các menu ứng dụng:
Option Menu
Sub Menu
Context Menu
32
Options Menu
Bộ sưu tập chính của mục trình đơn cho một hoạt động, xu ất hi ện khi ng ười dùng ch ạm
vào nút MENU. Khi ứng dụng của bạn đang ch ạy trên Android 3.0 ho ặc m ới h ơn, b ạn có
thể cung cấp truy cập nhanh chóng chọn các mục menu b ằng cách đ ặt chúng tr ực ti ếp
trong Bar hành động, là "các hành động. "
33
Options Menu
34
Sub Menu
Một danh sách thả nổi các mục menu xuất hiện khi người dùng chạm vào một
mục trình đơn có chứa một trình đơn lồng nhau.
35
Sub Menu
36
Sub Menu
None Single All
37
Context Menu
Một danh sách thả nổi các mục menu xuất hi ện khi ng ười dùng ch ạm vào và n ắm gi ữ m ột
cái nhìn đó là đăng ký để cung cấp một trình đ ơn ng ữ c ảnh.
38
Context Menu
39
MenuOptions
40
ContextMenu
Được sử dụng để hiển thị các tùy chọn khi người dùng nhấn dài vào một cell
nào đó trong ListView.
Có 2 cách tạo ContextMenu tương tự MenuOptions, ch ỉ khác tên ph ương
thức.
Khi nhấn dài vào một cell trong ListView thì phương th ức:
42
Khởi động một activity
Dùng Intent:
Khai báo tường minh: cung cấp chính xác thông tin c ủa activity c ần g ọi (n ếu
cùng ứng dụng chỉ cần cung cấp tên class, nếu ứng dụng khác nhau thì cung
cấp tên package, tên class)
Khai báo không tường minh: cung cấp thao tác c ần làm gì, v ới lo ại d ữ li ệu
nào, thao tác thuộc nhóm nào… hệ thống sẽ tìm activity t ương ứng đ ể kh ởi
động.
43
Khởi động một activity
Tường minh: đoạn code bên dưới sẽ tạo khởi động Activity tên là TargetActivity
44
Khởi động một activity
Không tường minh: đoạn code bên dưới sẽ khởi động một activity nào đó
có khả năng xem ảnh.
45
Khởi động một activity
Với cách khởi động activity không tường minh, bạn cần biết một chút
về Intent-filter.
Intent-filter sẽ giúp một activity (chung hơn là một thành phần ứng
dụng) đăng ký với hệ thống mình có thể làm được thao tác gì, trong
nhóm nào, với loại dữ liệu nào.
Như vậy khi intent và intent-filter khớp nhau, activity sẽ được hệ thống
khởi động.
46
Liên lạc giữa 2 activity
Khi khởi động một activity, ta có thể gửi kèm dữ liệu trong intent như
ví dụ sau:
Bên phía activity được khởi động, có thể lấy dữ liệu được gửi như sau:
getIntent().getExtras().getString("value1");
getIntent().getExtras().getLong("value2");
47
Liên lạc giữa 2 activity
Có thể khởi động một activity với một yêu cầu nào đó và activity kia khi
làm xong công việc sẽ trả lại kết quả cho activity trước
Ví dụ activity A yêu cầu một activity làm giúp việc chụp ảnh, activity B đáp
ứng được việc này, sau khi user chụp ảnh xong sẽ trả lại file ảnh cho
activity A.
Như thế sẽ đỡ tốn nhiều công sức làm một việc mà người khác đã làm rồi.
48
Q/A
49