Bài 3: View đối tượng Khái niệm View 1.1 View ViewGroup View sử dụng để tạo điều khiển hình cho phép nhận tương tác từ người dùng hiển thị thông tin cần thiết View bao gồm hai dạng ◦ View:các điều khiển đơn lẻ ◦ ViewGrou ◦ p: tập hợp nhiều điều khiển đơn lẻ 1.2 Thể thao tác Thể hiện: ◦ Các đối tượng View thể hình giao diện hình chữ nhật tùy thuộc vị trí, kích thước, màu sắc nhận vào xử lý tương tác có liên quan ◦ Một số thể lớp View: Textview, ImageView, SurfaceView… ◦ ViewGroup thể View Có thể xây dựng đối tượng View theo cách: ◦ Kéo thả tùy chỉnh thuộc tính XML ◦ Thiết lập thông số truy xuất trực tiếp Java Code ◦ Thao tác: ◦ Các đối tượng View xây dựng thiết lập với bốn thao tác chính: Hiển thị nội dung thơng qua phương thức set(TS) Ví dụ: TextView hiển thị văn bản, ImageView hiển thị hình ảnh… ◦ u cầu tương tác Ví dụ: sử dụng requestFocus để yêu cầu tương tác với ddieuf khiển Thiết lập chế độ hiển thị thông qua phương thức setVibility(hoặc thuộc tính visibility: XML) VISIBLE INVISIBLE GONE Xây dựng phương thức “lắng nghe” Ví dụ bắt lại kiện xảy điều khiển ◦ Một số kiện đối tượng View OnClickListener OntouchListener OnLongClickListener OnDragListener OnKeyListener Ví dụ : lắng nghe kiện nhấn View.setOnClickListener(new OnClickListener(){ @Override Pubic void onClick(View v){ Log.i(“HTSI”, “onClick”); } }); 1.3 Thuộc tính Id: ◦ Khai báo kiểu số nguyên int, đánh dấu vùng nhớ đối tượng View ◦ Id giống cho điều khiển khác tập tin giao diện ◦ Phương thức thiết lập Setld ◦ Phương thức truy xuất getld Thuộc tính Id kèm với đối tượng View khai báo XML cho phép truy xuất Java Code cần Ví dụ: Khai báo id XML Truy xuất JavaCode Button myBtn=(Button)findViewByld(R.id.my_button); Vị trí: cho biết tọa độ hiển thị cho View giao diện ◦ Phương thức thiết lập Layout Setleft Setop setRight setBottom ◦ Phương thức truy xuất: Getleft Gettop Getright Getbottom Vị trí view tùy thuộc vào thuộc tính đối tượng layout 1.3 Thuộc tính Kích thước: bao gồm chiều ngang chiều cao đối tượng View ◦ Kích thước đối tượng View thiết lập qua thơng số: Wrap_Content Match_parent(API trở lên) Fill_Parent Một số bất kỳ(tính theo dp/px/dip) ◦ Phương thức thiết lập JavaCode: Thiết lập thông qua đối tượng LayoutParams ◦ Thuộc tính thiết lập XML; layout_width layout_height ◦ Phương thức truy xuất getWidth getHeight getMeasuredWidth getMeasureHeight Canh lề nội dung JavaCode: ◦ Phương thức thiết lập: setPadding ◦ Phương thức truy xuất: getPaddingTop getPaddingLeft getPaddingRight getPaddingBottom 2.Các điều khiển 2.1 TextView Đối tượng cho phép hiển thị nội dung văn bốn dạng: ◦ Normal ◦ SmallText ◦ MediumText ◦ LargeText Thiết lập nội dung hiển thị: ◦ Trong Java code: text View.setText(“Đối tượng TextView”); ◦ Trong XML: Android:text=“Đối tượng TextView” Cơ chế tự động thiết lập hành động cho siêu liên kết, bao gồm: ◦ Web ◦ Email ◦ Phone ◦ Map Phương thức thiết lập: ◦ Trong java code: text View.setAutoLinkMask(Linkify.PHONE_NUMBERS); ◦ Trong XML: Android:autoLink=“phone” Cho phép hiển thị hình ảnh theo văn hai dạng: ◦ Theo bố cục văn bản: Left, Top, Right, Bottom ◦ Theo đoạn văn bản: Start, End Phương thức thiết lập ◦ Trong Java code: textView.setCompoundDrawables(Left, Top, Right, Bottom); ◦ Trong XML: Android: drawableLeft=“@drawable/ic_launcher” Một số phương thức quan trọng: ◦ setTextColor-android:textColor ◦ setTextSize-androi:textSize ◦ setTypeFace-android:typeface 2.2 Botton Đối tượng Button xây dựng từ TextView, cho phép thể nội dung văn bản, hình ảnh – nhận phản hổi tương tác nhấn từ người dùng: Các dạng Button: ◦ Button ◦ CompoundButton Checkbox RadioButton ToggleButton Swich Button: ◦ Lắng nghe kiện nhấn Java-Code: button.setOnclickListener(new OnclickLisntener(){ @Override pubblic void onClick(View v){ Log.i(“HTSI”, “onClick”); } }); ◦ Lắng nghe kiện nhấn XML Android:onClick=“tenPhuongThuc” CompoundButton ◦ Checkbox: đối tượng nút bấm hai trạng thái “được chọn” “bỏ chọn” ◦ Phương thức lắng nghe kiện thay đổi trạng thái: checkBox.setOnCheckedChangeListener(new OnCheckedChangeLisntener() { @Override public void onCheckedChangeListener(CompoundButton v, boolean isChecked){ Log.i(“HTSI”, “onChecked”); } }); ◦ RadioButton: đối tượng nút bấm hai trạng thái “được chọn” “bỏ chọn”, “bỏ chọn” “được chọn” – Thường xử lý nhóm nút nhiều trạng thái ◦ Phương thức lắng nghe kiện thay đổi trạng thái nhóm nút: radioGroup.setOnCheckedChangeListener(new OnCheckedChangeLisntener() { @Override public void onCheckedChangeListener(RadioGroup group, int checkedId) { Log.i(“HTSI”,“Checked at id:” + checkedId); } }); ◦ ToggleButton: đối tượng nút bấm hai trạng thái “bật” “tắt”, thể trạng thái đối tượng ◦ Thuộc tính quan trọng: textOn: trạng thái nút bật textOff: trạng thái nút tắt ◦ Phương thức lắng nghe kiện thay đổi trạng thái nhóm nút: toggleButton.setOnCheckedChangeListener(new OnCheckedChangeLisntener() { @Override public void onCheckedChangeListener(CompoundButton v, boolean isChecked) { Log.i(“HTSI”, “onChecked”); } }); ◦ Switch: đối tượng nút bấm hai trạng thái “bật” “tắt”, thao tác cách trượt ngón tay đối tượng – Thuộc tính quan trọng: textOn: trạng thái nút bật textOff: trạng thái nút tắt ◦ Phương thức lắng nghe kiện thay đổi trạng thái nhóm nút: switchButton.setOnCheckedChangeListener(new OnCheckedChangeLisntener() { @Override public void onCheckedChangeListener(CompoundButton v, boolean isChecked){ Log.i(“CompoundButton”, “onChecked”); } });