Một View object là một cấu trúc dữ liệu có đặc tính lưu trữ các thông số bố trí và nội dung cho một khu vực cụ thể hình chữ nhật của màn hình.
Một View object xử lý đo lường riêng của mình, bố trí, bản vẽ thay đổi tập trung,, di chuyển, và phím/tương tác cử chỉ cho khu vực hình chữ nhật của màn hình.
Là một object trong giao diện người dùng, view cũng là một điểm tương tác cho người sử dụng và nhận các sự kiện tương tác.
Xem Hierarchy
Trên nền tảng Android, bạn xác định một hoạt động của giao diện người dùng bằng cách sử dụng một hệ thống phân cấp của View và ViewGroup, như trong biểu đồ dưới đây.
Cây này có thể được phân cấp đơn giản hay phức tạp như bạn cần nó được, và bạn có thể xây dựng nó lên bằng cách sử dụng thiết lập Android của widgets và layouts định sẵn, hoặc với Views tùy chỉnh mà bạn tạo ra cho mình.
Để đính kèm với cây phân cấp xem màn hình cho rendering, Hoạt động của bạn phải gọi setContentView() Phương pháp và thông qua một tham chiếu đến đối tượng button gốc.
Hệ thống Android nhận được tập tin này và sử dụng nó để làm mất hiệu lực, đo lường, và vẽ cây.
Nút gốc của các yêu cầu phân cấp cho nó vẽ các nút con - lần lượt, mỗi nút view là nhóm chịu trách nhiệm kêu gọi mỗi lần view nút con riêng của mình để vẽ có thể yêu cầu một kích thước và vị trí trong nút gốc., Nhưng đối tượng viewgroup có quyết định cuối cùng về nơi làm thế nào, có thể được cho mỗi nút con.
Android parses các yếu tố của cách bố trí của bạn trong thứ tự (từ phía trên cùng của cây phân cấp), instantiating việc xem và thêm chúng vào parent(s).
Bởi vì đây là những trích ra trong trật tự, nếu có các yếu tố đó chồng chéo nhau các vị trí, một lần cuối để được rút ra sẽ nằm trên đầu trang của những người khác trước đây để rút ra không gian đó.
Giao diện
Cách phổ biến nhất để xác định bố trí của bạn và thể hiện sự phân cấp view là với một tập tin XML layout. XML cung cấp một cơ cấu có thể đọc được cho bố trí, giống như HTML. Mỗi phần tử trong XML là cả một View hoặc đối tượng ViewGroup (hoặc hậu duệ đó). Các đối tượng View là lá trong cây, ViewGroup đối tượng là các nhánh trong cây.
Tên của một phần tử XML là tương ứng với lớp học Java mà nó đại diện. Vì vậy, một yếu tố
android:layout_height="fill_parent"
android:orientation="vertical">
android:layout_height="wrap_content"
android:text="Hello, I am a TextView"/>
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello, I am a Button" />
Chú ý rằng các phần tử LinearLayout chứa cả TextView và Button. Bạn có thể làm khác LinearLayout (hoặc các loại hình xem nhóm) bên trong ở đây, để kéo dài sự phân cấp xem và tạo ra một bố cục phức tạp hơn. Để biết thêm về việc xây dựng một bố cục UI, đọc Giao diện kê khai.
Có rất nhiều cách mà bạn có thể xem cách bố trí của bạn. Sử dụng nhiều hơn và các loại khác nhau của các view group, bạn có thể cấu trúc views con và view groups trong vô số cách . Xác định các nhóm xem được cung cấp bởi Android (gọi là layouts) bao gồm LinearLayout, RelativeLayout, TableLayout, GridLayout và khác. Mỗi cung cấp một bộ duy nhất của các thông số bố trí được sử dụng để xác định vị trí của views con và cơ cấu layout Để tìm hiểu về một số các loại khác nhau của các view group được sử dụng cho một layout, đọc Giao diện đối tượng thường gặp.
Widgets
Widget là một object View phục vụ như một giao diện để tương tác với người dùng. Android cung cấp một tập các widgets thực hiện đầy đủ, giống như các button, Checkbox, và text-entry , do đó bạn có thể nhanh chóng xây dựng giao diện người dùng của bạn. Một số widgets được cung cấp bởi Android phức tạp hơn, giống như một date picker, clock, và zoom controls. Nhưng nó không giới hạn trong các loại widgets được cung cấp bởi các nền tảng Android.
Nếu bạn muốn làm một cái gì thêm cho tùy biến và tạo ra các yếu tố của hành động của bạn, bạn có thể, bằng cách xác định object view của riêng bạn hoặc bằng cách mở rộng và kết hợp các Widget hiện có. Đọc tiếp tại Building Custom Components. Để có một danh sách các vật dụng được cung cấp bởi Android, xem gói android.widget
UI Sự kiện
Một khi bạn đã thêm một số Views/widgets đến giao diện, có thể bạn muốn biết về sự tương tác của người dùng với họ, vì vậy bạn có thể thực hiện hành động.
Để được thông báo về UI events người dùng, bạn cần phải làm một trong hai điều:
Xác định một sự kiện nghe và đăng ký nó với các View. Khác thường hơn không, đây là cách bạn sẽ lắng nghe cho các sự kiện. Các class View có chứa một tập hợp các giao diện lồng nhau đặt tên On
Ghi đè một callback method hiện cho View. Đây là những gì bạn nên làm gì khi bạn đã thực hiện lớp View của riêng bạn và muốn lắng nghe cho các sự kiện cụ thể xảy ra trong nó. Ví dụ về các sự kiện bạn có thể xử lý bao gồm màn hình là touched onTouchEvent() khi trackball là di chuyển onTrackballEvent() hoặc khi một phím trên thiết bị được nhấn onKeyDown(). Điều này cho phép bạn xác định các hành vi mặc định cho từng sự kiện bên trong tuỳ chỉnh View của bạn và xác định xem sự kiện này cần được thông qua ngày để View con khác. Một lần nữa, đây là những callbacks View class, do đó, cơ hội duy nhất của bạn để xác định đó là khi bạn xây dựng một phần tùy chỉnh.
Menus
Menu đơn có một phần quan trọng của giao diện người dùng trong một ứng dụng. Menus cung cấp một giao diện đáng tin cậy cho thấy rằng các chức năng ứng dụng và cài đặt. Trong trình đơn ứng dụng phổ biến nhất là tiết lộ bằng cách bấm phím MENU trên thiết bị. Tuy nhiên, bạn cũng có thể thêm Context Menus, có thể hiển thị khi người sử dụng máy nhấn và nắm giữ phím trên một mục. Thực đơn cũng được hệ thống phân cấp cấu trúc bằng cách sử dụng một xem, nhưng bạn không xác định cấu trúc này cho mình.
Thay vào đó, bạn xác định onCreateOptionsMenu() hoặc onCreateContextMenu() gọi method cho hoạt động của bạn và tuyên bố các mục mà bạn muốn bao gồm trong menu của bạn. Trong một thời gian thích hợp, Android sẽ tự động tạo ra hệ thống View phân cấp cần thiết cho menu, và rút ra mỗi trong mỗi menu items đó.
Menus cũng xử lý các sự kiện riêng của nó, do đó không cần phải đăng ký sự kiện listeners trên các item trong menu của bạn. Khi một item trong menu của bạn được chọn, onOptionsItemSelected() hoặc onOptionsItemSelected() onContextItemSelected() method onContextItemSelected() sẽ được gọi bằng framework. Và cũng giống như layout của bạn, bạn có tùy chọn để khai báo các menu item cho bạn trong một tệp tin XML. Đọc Tạo Menus để tìm hiểu thêm.
Adapters
Thỉnh thoảng bạn sẽ muốn populate một view group với một số thông tin mà không thể hard-coded được, thay vào đó, bạn muốn bind để xem một nguồn dữ liệu bên ngoài. Để làm điều này, bạn sử dụng một AdapterView xem như là view group của bạn và View con được khởi tạo và populated với dữ liệu từ Adapter. Các đối tượng AdapterView là một implementation của ViewGroup xác định những view con của nó dựa trên một đối tượng Adapter nhất định. Adapter các hành vi như là chuyển phát nhanh giữa các nguồn dữ liệu của bạn (có lẽ là một mảng của chuỗi bên ngoài) và AdapterView, hiển thị nó trong đó. Có một số hiện thực của class Adapter, cho nhiệm vụ cụ thể, chẳng hạn như CursorAdapter việc đọc dữ liệu cơ sở dữ liệu từ một Cursor, hoặc một ArrayAdapter đọc từ một mảng tùy ý. Để tìm hiểu thêm về cách sử dụng một adapter cho populate views của bạn, hãy đọc đóng vào dữ liệu với AdapterView.
Styles and Themes
Có lẽ bạn không hài lòng với dáng vẻ của các widgets tiêu chuẩn. Để sửa đổi chúng, bạn có thể tạo một số style riêng và chủ đề của bạn.
Một Style là một tập hợp của một hay nhiều thuộc tính định dạng mà bạn có thể áp dụng như một đơn vị đến các yếu tố cá nhân trong layout của bạn. Ví dụ, bạn có thể xác định một Style chỉ định một văn bản kích thước và màu sắc nhất định, sau đó áp dụng nó để chỉ các yếu tố View cụ thể.
Một Theme là một tập hợp của một hay nhiều thuộc tính định dạng mà bạn có thể áp dụng như một đơn vị đến tất cả các hoạt động trong một ứng dụng, hoặc chỉ hoạt động đơn lẻ. Ví dụ, bạn có thể định nghĩa một theme mà bộ màu sắc cụ thể cho khung cửa sổ và nền bảng, và đặt kích cỡ chữ và màu sắc cho các menu. Theme này sau đó có thể được áp dụng cho các hoạt động cụ thể hoặc ứng dụng toàn bộ. Styles and themes là nguồn tài nguyên.
Android cung cấp một số kiểu mặc định và style and themes mà bạn có thể sử dụng, hoặc bạn có thể phát triển riêng tài nguyên style and theme của bạn. Learn more about using styles and themes in the Applying Styles and Themes document. Tìm hiểu thêm về cách sử dụng phong cách và chủ đề trong các ứng dụng Styles và tài liệu đề.
reflink: http://kythuatlaptrinh.blogspot.com/2010/03/giao-dien-nguoi-dung-trong-android.html