P. 1
3.Thiet Ke Giao Dien Tren Android

3.Thiet Ke Giao Dien Tren Android

|Views: 6|Likes:
Được xuất bản bởiPhuong Vu Xuan

More info:

Published by: Phuong Vu Xuan on Oct 10, 2011
Bản quyền:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PPT, PDF, TXT or read online from Scribd
See more
See less

12/16/2013

pdf

text

original

Thiết kế giao diện trên Android

MultiUni Trần Vũ Tất Bình

Tổng quan
• Trong Android, dùng Activity để hiển thị màn hình. • Mỗi activity sẽ chứa các View theo dạng cấu trúc cây, nghĩa là một Layout gốc chứa các view/layout con bên trong hoặc chỉ có 1 view duy nhất. (lưu ý Layout cũng là một view nhé) • Có thể thiết kế giao diện trong code java hoặc trong file xml trong thư mục layout.

Tree view .

com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent”> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text=“@string/hello“ /> </LinearLayout> .0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.Layout mẫu của helloworld <?xml version="1.android.

layout_height: chiều rộng của view (fill_parent là to bằng kích thước của layout chứa view này. wrap_content là vừa đủ nội dung cần hiển thị của view) • Orientation: với LinearLayout. việc sắp xếp các view là nằm kề nhau theo hàng ngang hoặc hàng dọc.Một số thuộc tính cơ bản • Layout_width. ta khai báo orientation để chọn sắp theo kiểu nào (horizontal/vertical) .

phải.Một số thuộc tính cơ bản • Gravity: thuộc tính này qui định các view nằm bên trong layout sẽ đặt theo vị trí nào so với layout(trung tâm. các view ko khai báo weight thì sẽ xem qua width và height) . trên dưới…) • Weight: để các view phan chia tỉ lệ diện tích hiển thị trên màn hình (tỉ lệ tính theo weight của từng view trên tổng số weight. trái .

com/resources/tutorial s/views/hello-linearlayout.android. lưu ý đọc thêm các dòng giải thích tiếng Anh nhé http://developer.Ví dụ cơ bản • Các bạn vào link này lấy code cho vào ứng dụng.html .

Giao diện với LinearLayout • Giả sử bạn cần thiết kế một màn hình như sau: .

Giao diện với LinearLayout • Với LinearLayout (LL). – Như vậy màn hình gồm 1 LL lớn bao bên ngoài. – Nửa bên dưới ta thấy rõ ràng chứa 3 TextView kề nhau theo hàng ngang  cho vào 1 LL dạng ngang là xong. lại chia đôi: một bên là 1 ImageView (vì chỉ có 1 view nên ko cần bỏ vào trong LL). ta thấy cách phân tích như sau: – Nguyên tắc chủ yếu là phân nhóm các View liên tiếp kề nhau (như 3 TextView kề nhau theo hàng dọc hoặc hàng ngang trong ví dụ trên) vào trong một LL. sau đó chia đôi ra và phân tích tiếp.  . một bên lại là 1 LL chứa 3 TextView theo hàng dọc. nhìn thấy bên trong chia thanh 2 phần trên dưới rõ ràng vậy thuộc tính của LL này là dạng dọc. phân rã từ lớn đến nhỏ. – Phần bên trên lại chia thành 2 nữa theo hàng ngang  là một LL dạng ngang. các view bên trong nó được đặt kề nhau theo hàng ngang hoặc hàng dọc (cần lưu ý đặc điểm này) • Với ví dự vừa rồi.

Giao diện với LinearLayout • Xem cây: .

Thực hành tại chỗ • Làm một layout hiển thị như trong hình: • Các bước như sau: – Phân tích thành phần layout trên giấy (thảo luận) – Phân tích đặc điểm các view – Add thêm resource ảnh – Thử trước với với tab layout (khi view file xml trong eclipse) – Đưa vào thực thi trên máy. đánh giá. .

các view có thể đè lên nhau. … . • RelativeLayout: các view được thiết kế dựa trên quan hệ giứa chúng với nhau và với layout chứa chúng. nhưng ko khuyến khích với Android nhé.Một số loại layout khác • FrameLayout: các view bên trong được qui định vị trí bằng khoảng cách so với biên trái và trên so với layout. • AbsoluteLayout: dành cho bạn nào làm nhiều với C#.

• FrameLayout có vấn đề với background • Muốn tìm thuộc tính gì. đừng dùng RelativeLayout • Nên chèn vào dữ liệu tạm để xem trước layout hiển thị ra sao bên tab layout (trong eclipse). nhưng xong rồi thì nhớ xóa dữ liệu tạm đi. .Lưu ý khi thiết kế giao diện • Hạn chế độ sau của cây • Với các Layout phức tạp. bấm “android:” rồi đợi suggestion sổ ra xem.

Code nhanh một số ví dụ • Thử cùng nhau ngồi code nhanh nhé (khi đã hiểu rồi thì làm sẽ rất nhanh thôi) http://developer.com/resources/tutorials/vie ws/hello-webview.com/resources/tutorials/vie ws/hello-formstuff.android.android.html http://developer.html .

List • Rất hay dùng trong Android. Đặc biệt các ứng dụng cần lưu trữ và hiển thị nhiều dữ liệu. . • List là một danh sách các view thông thường có cùng dạng layout đặt liền nhau.

apis.java .6  samples  ApiDemos  OK  Finish. – Mở thư mục project trong eclipse  src  mở com.ApiDemos • Mở ứng dụng ApiDemos đã có sẵn: – New android project  Create project from existing source  Browse  mở thư mục SDK  platforms  android-1.android.view  mở file List1.example.

mStrings).simple_list_item_1.R.List1 • Trong code của List1. các bạn tách bạch phần tạo mới ArrayAdapter ra nhé ArrayAdapter adapter = new ArrayAdapter<String>(this. truyền vào cho list hiển thị (dòng code bên dưới) . setListAdapter(adapter). • Adapter dùng để kết nối dữ liệu cần đưa vào list với layout hiển thị và cung cấp cho ListView hiển thị. android.layout. • Sau khi tạo xong adapter.

R. ở đây chỉ có một TextView – mStrings: mảng các chuỗi kí tự. ta phân tích ra: – this: context. lúc nào làm view cũng cần rồi – android.List1 • Với đoạn tạo một adapter.simple_list_item_1: layout để hiển thị mỗi item trong list. là dữ liệu cần hiển thị • Giải thích đoạn tạo adapter như sau: tạo một adapter mới với context của activity hiện tại. dữ liệu đưa vào lấy từ mảng các chuỗi mStrings .layout. dùng layout simple_list_item_1 để hiển thị mỗi item trong list.

List1 • Tạo một project mới. T[] objects) – Chạy ứng dụng . int textViewResourceId. copy code List1 bỏ qua. int resource. rồi làm thêm các thao tác sau: – Tạo 1 file layout có 1 TextView và 1 ImageView – Trong TextView thêm dòng này android:id=“@+id/text” – Sửa lại đoạn tạo mới adapter cho nó dùng cái layout vừa tạo. (tìm xem có cái constructor nào giúp chỉ chính xác đến cái TextView trong layout hay ko) Dạng này: ArrayAdapter(Context context.

bạn cần truyền thêm id của TextView vào (ở đây là R. layout chỉ có một view duy nhất là TextView nên bạn ko cần khai báo gì khác ngoài layout và đưa dữ liệu dạng mảng String vào. – Với yêu cầu sau này.text) để adapter có thể hiểu bạn muốn dữ liệu của bạn được truyền vào view nào trong layout. layout của bạ có nhiều hơn 1 view.List1 • Giải thích: – Với code mẫu ban đầu. adapter sẽ tự hiểu và xử lý.id. .

List14 • Mở List14 ra. đọc và chạy thử. .

Với mục đích giúp cho các bạn không đến tham dự lớp vẫn có thể hiểu được bài giảng kỹ càng nên trong slide sẽ có nhiều đoạn chú thích hơi dài.  .

7.4:9 92 .04 30.

30.4/3.: .8.4:9 W 8-3.3992923K33..7.

0'0 .23K323-.4. .3-.3 29/3 3.4/3.:  .49743 29-H3. .:9043/.-H3/..4:9 W '30.39743.O.30.:9043 3.4/33.3/3 /.K.E..8.4-H334 3K39-H39743 .90433.33.3.4 974329 53793 33 .34.03H34 .E.343  .539J.3...933.3 ..'0H3953.J/97H3 .%09'09043 /.. 29-H32... 23 W '.J/.9..4.0-H397433O .E.: 3.9:..9773.: :H39.539J.:533O2..: O.773.4:9  . 7.7..9.. 8.7. %09'03.35397H3/.9.95 !3-H397H3..7 9.%09'03.3/..9J3.:90433.3 . 9 3.

30. .7.4/3.4:9 W 02..

9.. 2.-.49.: !39J.580 l....8.9353.. W 229.3..9743K3 W E.E.0 //9H27084:7.-.03 %97.%.4:9 ..4:9393. .39.997H32E  E3E .4:997H3 94:3 !39J.0102 97430.

E. . . .4 -3 34 2 3: ..E. 97J -3 43 . 97H3 6:.  3. . 99  /.4:9 . 84.4:9 .984. 97H3 84.. .20.0 .4:9E. .E. .3  . -H3 97E ..0.3 4 :3 J. 6: 3 .3 . .0-H3 9743 . W 7.E. 3/74/ 3F .O 9 G H3 3.9.0. . 3.: W #0.: .4:9.3 W -84:90.4:9.4:9/3 .

-./:92  W 7.4-H39.4:95..74:3/ W :39K29:... W '.4/3 W 3.20.34379K3O.95  3/3 #0.4:9 397.G3..4:9 W H3.:.9J3K -2 .-.E.8. 8..0..O.9.4:9.4:9 97430.02 ..3 .: 99.3/74/ 7  8:0894387.4/:92 0297.580  3.

33.3298.J/ W %.4/03.39 995.:3.33F   :79K28793.4/03.

.

04507 ./0.42.3/74/ .

7084:7.08.

8.9:947.

0 8..

04 147289:11 92 995.

.

42.04507 ./0.3/74/ .

7084:7.08.

9:947.8.

.0 8.

0 92 .04 0-.

393:/: W 8929/..89 W #9.3 .3 /3..:97.38E.3./397433/74/ l.4:9 933.E.E.O.-9.3/3.0939.: .

50248 W 3/350248 .2.914728 .58 .2.3/74/5740.0 210 89 .3/74/ .5740..3/74/   8. .2508 50248  38 9.580 87.42 0.917420893 84:7.$ 5.905740.0 7480 29..250 .O83 0.9 70. 2 .997430.

5907 ./..3/74/ # .5 ./.4 .4 89 3 9 /3 .5907  W /. -. 53 94 2 77. -3 9E. .5907/3  9 3 / : ./.:3 .4:93 9 .3 .89 W %743 .4 89'0 3 9 W $.. . 89 .4:9 8250*89*902* 2$9738  80989/.5907$973 98 .59073077. .:  94 43 ././.5907 7.4 89. 3F 77.4/0-H3 /.4/0.E.5907 97:3 .5907 . ./.

4:98250*89*902*  3 9 2 9029743 89 / : .: J 9  / : ./..43909 .59072 .. . 98.89 W ' 43 94 29 .E. 53 9J.O 29 %09'0 2$973823 . .4  9 23 .43909.3 7 .: 2$9738 ./.4:9  3 9 2 9029743 89   .9. 43 94 .3 3 9 W  9J.3 . .:94 29 .3/74/ # . .93 9 /3 . 34 2 .. ./.4:9 8250*89*902*. .5907 9.E. 8. 7.0.59073.

9.89 W %4 29 5740. 2.O %09'0 .4 9E. 8.45.3/74//  /.0'0 %743 %09'0 9H2 /3 3 .4:9.4/089- 6:.: %4 10.  7 2 9H2 .E.92 .

/. 94  9K2 02 .4 3O /3 .909 $./.43897:.  43 94 2 .J3 E.. .94734 5 .4:9.E .5907.O .5907 43909 .4  3 377.43909 39 7084:7.98  3 /3 .E .0 39 909'0#084:7.4:9 . 3 .E %09'0 9743 .0/ %(4-0.

O 29 .0 -3 . .   ' H: .4:9.4    # / 909   . .0/: 39  %09'0 3H3 -3 4 . 34 .4:9 ..3 97:3 9H2 /. -E4 K E. - ./. -3 .3  .89 W  9J.3 : .4 . ' .034 9743 .5907./.59078 9 : .4  .4:9.O 3: .3 .: 3 ... 97:3 .4/02: -. %09'0 .O 9 : -3 2:3 / : .. / : /3 23 $973..: 8.4:9.

89 W 897.  .9 ...

 J.. 9J.4.3..-3.E.O3: 43.5.-3 3 39./ .'2.2/5.33H3 97438/08.O9 : .

You're Reading a Free Preview

Tải về
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->