Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Bài 3: Lập trình giao diện Android
1. ANDROID APPLICATION
DEVELOPMENT
Lập trình giao diện Android
hoccungdoanhnghiep.com
2. Nội dung
Giới thiệu về Android UI
Các thành phần của một screen
Tạo mới Layout
Views & ViewGroups
Style & Theme
Orientation – Detect, manage, control
Basic Views
hoccungdoanhnghiep.com
3. Về Android User Interface
Giao diện được khai báo dưới dạng XML-based
Layout được view dễ dàng trong Eclipse, bao gồm tính năng kéo thả,
tùy chỉnh nhanh thuộc tính, view source, formating source
Interface được tạo thành từ các View & View Group
View: là đơn vị cơ bản, có đầy đủ các thuộc tính (text, width, height,
…) và tương tác với người dùng
ViewGroup: là view đặc biệt, nó có thể chứa các view khác bên trong
Để gán UI, thì activity phải gọi setContentView() để trỏ đến file layout
mô tả UI.
hoccungdoanhnghiep.com
5. ViewGroup
Về một mặt nào đó, còn được gọi là các layout
Android hỗ trợ các ViewGroup sau:
LinearLayout: sắp xếp các view theo hàng ngang hoặc
dọc, trong một cột hoặc một dòng.
AbsoluteLayout: sắp xếp view ở chính xác tọa độ
mong muốn thông qua thuộc tính layout_x & layout_y
TableLayout: sắp xếp các view thành các cột & dòng.
Mỗi view trong 1 TableRow sẽ là 1 cột
RelativeLayout: cho phép chỉ ra các view bên trong có
liên quan đến nhau như thế nào qua các thuộc tính:
layout_alignParentTop
layout_alignParentLeft
layout_alignLeft
layout_alignRight
layout_below
layout_above
layout_centerHorizontal
hoccungdoanhnghiep.com
6. ViewGroup (2)
FrameLayout: là loại layout luôn lấy tọa độ gốc
là top-left. Và nó xếp chồng view sau lên view
trước
Scrollview: cho phép cuộn các layout bên trong
nó, do đó có thể hiển thị được nội dung lớn hơn
màn hình.
Chú ý không sử dụng với ListView
Bắt buộc phải đặt ở bên trong nó 1 child view
chứa toàn bộ nội dung khác
hoccungdoanhnghiep.com
7. Đơn vị đo
dp/dip – Density-independent pixel (không phụ
thuộc mật độ pixcel). 160dp = 1” trên màn hình
sp – Scaled-independent pixel, thường sử dụng
để set font size
pt – Point = 1/72 inch, và tùy thuộc vào màn
hình vật lý
px – Pixel là 1 pixel thực trên màn hình. Không
nên dùng đơn vị này vì nó là đơn vị chính xác ->
trên màn hình khác nhau có thể sẽ hiển thị
không như ý muốn
hoccungdoanhnghiep.com
8. XML layout
Mỗi layout phải có một root-node là một trong số
các loại layout (viewgroup) được support ở trên
Ký tự @ trong giá trị của thuộc tính mang ý
nghĩa tham chiếu đến các resource đã được
khai báo
@drawable/ … tham chiếu đến file jpg, png
@android:id/ … tham chiếu đến một id của
android framework
@+id/id_name: khai báo mới id của view hoặc
groupview
hoccungdoanhnghiep.com
9. Style & Theme
Một style là một bộ các attribute/value được
khai báo sẵn để apply vào look & feel (một cách
nói khác về GUI) của view
style có thể được kế thừa bằng cách thêm thuộc
tính parent=“@android:style/….”
Thêm thuộc tính style vào view để apply
Theme là một style mà nó apply cho toàn bộ
activity hoặc thậm chí toàn application
Thêm thuộc tính android:theme vào activity trong
manifest
Khi một style được apply thành theme thì toàn
các thuộc tính được khai báo trong style sẽ ghi
hoccungdoanhnghiep.com
10. Orientation
Android hỗ trợ 2 dạng định hướng là ngang
(landscape) & dọc (portrait)
Khi đổi chiều, activity cũ sẽ bị destroy, sau đó
gọi hàm onCreate và restart lại screen với
layout tương ứng
Layout cho portrait mode sẽ mặc định và ở thư
mục /res/layout/
Layout cho landscape mode sẽ ở thư mục
/res/layout-land/
Nhấn Ctrl + F11 để đổi chiều của Emulator
Gọi vào khi muốn tự thay đổi chiều
setRequestedOrientation(ActivityInfo.SCREE
hoccungdoanhnghiep.com
11. Các view/control cơ bản
Demo các control
Các học viên có chạy API Demo app để xem
http://developer.android.com/resources/tutorials/views/
hoccungdoanhnghiep.com