Lập trình giao diện với Android

6,749 views

Published on

Android design guidelines

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
6,749
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
224
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Lập trình giao diện với Android

  1. 1. Lập trình giao diện với Android • Author:http://vnaking.com/ • Email: vnaking@gmail.com
  2. 2. Mục tiêu • Làm quen với các thành phần trong giao diện Android. • Hiểu về XML layout. • Biết cách xử lý các sự kiện xảy ra trong giao diện Android.
  3. 3. Activities và Tasks • Activity – Dùng để hiển thị một màn hình. – Thừa kế từ lớp android.app.Activity – Các activity có những phương thức để bắt sự kiện sau (@Override): • onCreate: activity “Lúc khởi tạo" • onDestroy: activity “Lúc huỷ" • onStart/onResume/onPause/onStop/onRestart flow
  4. 4. Activities và Tasks • Task – Là một tiến trình được sử dụng thông qua Activity. • Thường bắt đầu từ Home screen. – Một task mới tạo ra một stack mới của activity • Nút “back” sẽ gỡ bỏ task cao nhất và huỷ activity đó. – Các task được phân biệt với nhau • Task mới sẽ tạo một stack mới. – Task có thể cross applications và processes
  5. 5. Các dạng của view • View và ViewGroups – View là lớp cơ sở của “widgets” – ViewGroup lớp cơ sở của Composite-patterned chứa các đối tượng khác của View. – Mỗi Activity có thể giữ một nội dung view. • Thông thường đây là một ViewGroup tạo thành một hệ thống phân cấp. – Có thể tuỳ chỉnh View và ViewGroups
  6. 6. Các dạng của view • Widgets (android.widget)
  7. 7. Các dạng của view • Widgets (android.widget) – “Dạng push": Button, CompoundButton, CheckBox, ImageButton, RadioButton – Dạng Text: EditText, TextView, NumberPicker, TextSwitcher – Graphics: Gallery, ImageSwitcher, ImageView – Selectors: RatingBar, SeekBar, Spinner, Switch – Time: AnalogClock, DigitalClock, Chronometer, CalendarView, DatePicker, TimePicker – Composite: ListView, SlidingDrawer, TabHost – Media: MediaController – Space (tạo khoảng trống giữa các thành phần) – ...
  8. 8. Các dạng của view • Layouts(android.widget) – LinearLayout: Sắp xếp theo hàng ngang/dọc – RelativeLayout: Căn chỉnh giữa các view – TableLayout: Sắp xếp theo bảng – GridLayout: Sắp xếp theo lưới – AbsoluteLayout: Sắp xếp theo toạ độ – FrameLayout: Căn chỉnh dựa trên toạ độ gốc(top-left)
  9. 9. Các dạng của view • Dialogs (android.app)
  10. 10. Các dạng của view • Dialogs (android.app) (là trường hợp đặc biệt của Activity) – AlertDialog (OK/Cancel/Help, v.v) – ProgressDialog (56 of 100...) – DatePickerDialog – TimePickerDialog • Được tạo ra & hiển thị như một phần của Activity, Dialog không phải là activity
  11. 11. XML Tạo giao diện trên Android Có 2 cách để tạo giao diện trên Android • Sử dụng bộ công cụ tạo bằng tay trên java. • Sử dụng file layout XML-based – File layout XML không được gắn với Activity – Nó chỉ là một nhóm các View đặt trong 1 file XML – Để hiển thị XML dưới dạng giao diện ta gọi Activity.setContentView()
  12. 12. Layout Resources • Layout Resources nằm ở thư mục res/layout – Tên file XML tương ứng với R.layout.{tên-file} – Phần tử gốc thường là ViewGroup (Layout class) – android: namespace là bắt buộc – Ký tự @ trong thuộc tính có ý nghĩa tham chiếu đến các resource đã khai báo • @drawable/... Tham chiếu đến các file hình • @android:id/... Tham chiếu đến một id • @+id/id_name: Khai báo id của View/ViewGroup
  13. 13. Layout Resources • Layout Resources có thể tuỳ chỉnh – Các resource, layout có thể thay đổi cách bố trí để phù hợp với kiểu màn hình, thiết bị khác nhau • • • • screen size: "small", "normal", "large", "xlarge" orientation: "port", "land" pixel density: "ldpi", "mdpi", "hdpi", "xhdpi", ... platform version: "v3", "v4", "v7", ... – Mặc định app sẽ ở layout dọc(portrait) – Layout ngang(landscape ) nằm ở /res/layout-land/
  14. 14. Style • Style là một bộ các attribute/value được khai báo sẵn để áp dụng cho view. • Thuộc tính kế thừa của style: parent=“android:style/...”
  15. 15. Theme • Theme là một style mà áp dụng cho toàn bộ activity (hay application) • Thêm thuộc tính android:theme vào activity trong manifes • Toàn bộ giá trị khai báo trong theme sẽ ghi đè lên giá trị manual của các view trong activity
  16. 16. Menu • Activity có thể liên kết với mục trong menubar – Menu thường được khai báo trong layout(res/menu) • menu: khai báo 1 menu (chứa các mục) • item: khai báo một mục nằm trong menu • group: gom nhóm các mục
  17. 17. Menu • Ví dụ về menu <menu xmlns:android="http://schemas.android.com/apk/res /android"> <item android:id="@+id/new_game" android:icon="@drawable/ic_new_game" android:title="@string/new_game" /> <item android:id="@+id/help" android:icon="@drawable/ic_help" android:title="@string/help" /> </menu>
  18. 18. ActionBar ActionBar (3.0+) • là một tập hợp menus/menuItems nằm phía trên cùng. • Chỉ thích hợp cho thiết bị màn hình lớn • Thư viện tự động tạo action bar: – http://actionbarsherlock.com/
  19. 19. Xử lý sự kiện • Hầu hết Views/ViewGroups đều cung cấp hàm xử lý sự kiện • Nó được gọi là “InputEvents”: – View.OnClickListeners: có thể khai báo trong XML layout – Phần lớn các sự kiện được khai báo tại onCreate()
  20. 20. Intent • Để di chuyển qua lại giữa các Activity thì cần phải thông qua một Intent Intent next = new Intent(this, NextActivity.class); startActivity(next); • Intent cũng dùng để chuyển dữ liệu qua lại giữa các activity.
  21. 21. Tương tác với người dùng
  22. 22. Video hướng dẫn • Android Design in Action YouTube Playlist: http://www.youtube.com/playlist?list=PLWz5r J2EKKc8j2B95zGMb8muZvrIy-wcF • Google I/O 2013 - Android Design: https://www.youtube.com/playlist?list=PLWz5 rJ2EKKc-qVhMuAprIFYFbCotdgJKq
  23. 23. Tài liệu tham khảo • Android website – https://developer.android.com/design • Busy Coder’s Guide to Android Mark Murphy, http://commonsware.com/

×