SlideShare a Scribd company logo
1 of 21
Thiết kế giao diện và sử dụng
controls trên Android
Chương 3-4-5
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
Layout mẫu
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.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>
Một số thuộc tính cơ bản
• Layout_width, 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, ta khai báo orientation để chọn sắp
theo kiểu nào (horizontal/vertical)
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, trái , phải, 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, các view ko
khai báo weight thì sẽ xem qua width và
height)
Tài liệu
• http://www.vogella.com/articles/AndroidListView/
• http://developer.android.com/resources/tutorial
s/views/hello-linearlayout.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), 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)
• Thiết kế giao diện:Nguyên tắc chủ yếu là phân nhóm các View
liên tiếp kề nhau
Giao diện với LinearLayout
Bài tập thiết kế layout
• 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á.
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, 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.
• AbsoluteLayout: dành cho bạn nào làm nhiều
với C#
…
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, đừ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.
• FrameLayout có vấn đề với background
• Muốn tìm thuộc tính gì, bấm “android:” rồi đợi
suggestion sổ ra xem.
Code nhanh một số ví dụ
http://developer.android.com/resources/tutorials/vie
ws/hello-formstuff.html
http://developer.android.com/resources/tutorials/vie
ws/hello-webview.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.
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.6  samples  ApiDemos
 OK  Finish.
– Mở thư mục project trong eclipse  src  mở
com.example.android.apis.view  mở file
List1.java
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,
android.R.layout.simple_list_item_1, mStrings);
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ị.
• Sau khi tạo xong adapter, truyền vào cho list
hiển thị (dòng code bên dưới)
List1
• Với đoạn tạo một adapter, ta phân tích ra:
– this: context, lúc nào làm view cũng cần rồi
– android.R.layout.simple_list_item_1: layout để hiển
thị mỗi item trong list, ở đây chỉ có một TextView
– mStrings: mảng các chuỗi kí tự, 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ùng
layout simple_list_item_1 để hiển thị mỗi item trong
list, dữ liệu đưa vào lấy từ mảng các chuỗi mStrings
List1
• Tạo một project mới, copy code List1 bỏ qua,
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, int resource,
int textViewResourceId, T[] objects)
– Chạy ứng dụng
List1
• Giải thích:
– Với code mẫu ban đầu, 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,
adapter sẽ tự hiểu và xử lý.
– Với yêu cầu sau này, layout của bạ có nhiều hơn 1
view, bạn cần truyền thêm id của TextView vào (ở
đây là R.id.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.
List14
• Mở List14 ra, đọc và chạy thử.
• http://www.vogella.com/articles/AndroidListV
iew/article.html

More Related Content

What's hot

Slide bài giảng lập trình Android DTU - Phần 4 (Activity)
Slide bài giảng lập trình Android DTU - Phần 4 (Activity)Slide bài giảng lập trình Android DTU - Phần 4 (Activity)
Slide bài giảng lập trình Android DTU - Phần 4 (Activity)Techacademy Software
 
Swing lap trinh_do_hoa_trong_java_0407
Swing lap trinh_do_hoa_trong_java_0407Swing lap trinh_do_hoa_trong_java_0407
Swing lap trinh_do_hoa_trong_java_0407Phi Phi
 
IT120-1. Giới thiệu về Android SDK
IT120-1. Giới thiệu về Android SDKIT120-1. Giới thiệu về Android SDK
IT120-1. Giới thiệu về Android SDKMultiUni
 
1 gioithieuveandroidsdk-150322215607-conversion-gate01
1 gioithieuveandroidsdk-150322215607-conversion-gate011 gioithieuveandroidsdk-150322215607-conversion-gate01
1 gioithieuveandroidsdk-150322215607-conversion-gate01Lê Phú Thảo
 
Tìm hiểu về hệ điều hành android
Tìm hiểu về hệ điều hành androidTìm hiểu về hệ điều hành android
Tìm hiểu về hệ điều hành androidTÓc Đỏ XuÂn
 
2.bat dau voi hello world
2.bat dau voi hello world2.bat dau voi hello world
2.bat dau voi hello worldTan Phu Vo
 
2.bat dau voi hello world
2.bat dau voi hello world2.bat dau voi hello world
2.bat dau voi hello worldJustin Hoang
 
IT120-2. Bắt đầu với Hello World
IT120-2. Bắt đầu với Hello WorldIT120-2. Bắt đầu với Hello World
IT120-2. Bắt đầu với Hello WorldMultiUni
 
Slide thuyet trinh android
Slide thuyet trinh androidSlide thuyet trinh android
Slide thuyet trinh androidkuto92love
 
Báo cáo thực tập cơ sở
Báo cáo thực tập cơ sởBáo cáo thực tập cơ sở
Báo cáo thực tập cơ sởNguyễn Phú
 
Tìm hiểu về hệ điều hành android
Tìm hiểu về hệ điều hành androidTìm hiểu về hệ điều hành android
Tìm hiểu về hệ điều hành androidPhuong Ngo
 
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPT
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPTBài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPT
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPTMasterCode.vn
 

What's hot (15)

Slide bài giảng lập trình Android DTU - Phần 4 (Activity)
Slide bài giảng lập trình Android DTU - Phần 4 (Activity)Slide bài giảng lập trình Android DTU - Phần 4 (Activity)
Slide bài giảng lập trình Android DTU - Phần 4 (Activity)
 
Swing lap trinh_do_hoa_trong_java_0407
Swing lap trinh_do_hoa_trong_java_0407Swing lap trinh_do_hoa_trong_java_0407
Swing lap trinh_do_hoa_trong_java_0407
 
Lập trình android
Lập trình androidLập trình android
Lập trình android
 
IT120-1. Giới thiệu về Android SDK
IT120-1. Giới thiệu về Android SDKIT120-1. Giới thiệu về Android SDK
IT120-1. Giới thiệu về Android SDK
 
1 gioithieuveandroidsdk-150322215607-conversion-gate01
1 gioithieuveandroidsdk-150322215607-conversion-gate011 gioithieuveandroidsdk-150322215607-conversion-gate01
1 gioithieuveandroidsdk-150322215607-conversion-gate01
 
Tìm hiểu về hệ điều hành android
Tìm hiểu về hệ điều hành androidTìm hiểu về hệ điều hành android
Tìm hiểu về hệ điều hành android
 
2.bat dau voi hello world
2.bat dau voi hello world2.bat dau voi hello world
2.bat dau voi hello world
 
2.bat dau voi hello world
2.bat dau voi hello world2.bat dau voi hello world
2.bat dau voi hello world
 
IT120-2. Bắt đầu với Hello World
IT120-2. Bắt đầu với Hello WorldIT120-2. Bắt đầu với Hello World
IT120-2. Bắt đầu với Hello World
 
Slide thuyet trinh android
Slide thuyet trinh androidSlide thuyet trinh android
Slide thuyet trinh android
 
Báo cáo thực tập cơ sở
Báo cáo thực tập cơ sởBáo cáo thực tập cơ sở
Báo cáo thực tập cơ sở
 
Tìm hiểu về hệ điều hành android
Tìm hiểu về hệ điều hành androidTìm hiểu về hệ điều hành android
Tìm hiểu về hệ điều hành android
 
Android OS
Android OSAndroid OS
Android OS
 
Introduction Android For Begineer
Introduction Android For BegineerIntroduction Android For Begineer
Introduction Android For Begineer
 
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPT
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPTBài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPT
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPT
 

Similar to Slide bài giảng lập trình Android DTU - Phần 2 (Thiết kế giao diện)

3.thiet ke giao dien tren android
3.thiet ke giao dien tren android3.thiet ke giao dien tren android
3.thiet ke giao dien tren androidJustin Hoang
 
Hướng Dẫn Lập Trình Android: 3. Thiet ke giao dien tren Android
Hướng Dẫn Lập Trình Android: 3. Thiet ke giao dien tren AndroidHướng Dẫn Lập Trình Android: 3. Thiet ke giao dien tren Android
Hướng Dẫn Lập Trình Android: 3. Thiet ke giao dien tren AndroidWendy587439
 
Kiến thức cần thiết làm việc
Kiến thức cần thiết làm việcKiến thức cần thiết làm việc
Kiến thức cần thiết làm việcmanhvokiem
 
Sức mạnh của jsf 2, phần 2 tạo khuôn mẫu và các thành phần phức hợp
Sức mạnh của jsf 2, phần 2 tạo khuôn mẫu và các thành phần phức hợpSức mạnh của jsf 2, phần 2 tạo khuôn mẫu và các thành phần phức hợp
Sức mạnh của jsf 2, phần 2 tạo khuôn mẫu và các thành phần phức hợpTuyet Tam
 
Tài liệu Lập trình Zend Framework 2.x
Tài liệu Lập trình Zend Framework 2.xTài liệu Lập trình Zend Framework 2.x
Tài liệu Lập trình Zend Framework 2.xZendVN
 
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...MasterCode.vn
 
Thiết kế giao diện với Liquid
Thiết kế giao diện với LiquidThiết kế giao diện với Liquid
Thiết kế giao diện với LiquidTien Nguyen
 
Introduction to data statistics with r - Part I (in Vietnamese)
Introduction to data statistics with r - Part I (in Vietnamese)Introduction to data statistics with r - Part I (in Vietnamese)
Introduction to data statistics with r - Part I (in Vietnamese)Quang Nguyen
 
Huong dan su dung filter and dashboard trong Jira
Huong dan su dung filter and dashboard trong JiraHuong dan su dung filter and dashboard trong Jira
Huong dan su dung filter and dashboard trong JiraNgô Hoàn
 
Lập trình hướng đối tượng Chương 6 Design Pattern.pptx
Lập trình hướng đối tượng Chương 6 Design Pattern.pptxLập trình hướng đối tượng Chương 6 Design Pattern.pptx
Lập trình hướng đối tượng Chương 6 Design Pattern.pptxLmTrn286060
 
Lập trình hướng đối tượng Chương 6 Design Pattern.pptx
Lập trình hướng đối tượng Chương 6 Design Pattern.pptxLập trình hướng đối tượng Chương 6 Design Pattern.pptx
Lập trình hướng đối tượng Chương 6 Design Pattern.pptxLmTrn286060
 
Nội dung đào tạo Revit kiến trúc cho doanh nghiệp
Nội dung đào tạo Revit kiến trúc cho doanh nghiệpNội dung đào tạo Revit kiến trúc cho doanh nghiệp
Nội dung đào tạo Revit kiến trúc cho doanh nghiệpHuytraining
 
Các công cụ cần thiết cho quá trình Reverse Engineering .NET (bản đầy đủ)
Các công cụ cần thiết cho quá trình Reverse Engineering .NET (bản đầy đủ)Các công cụ cần thiết cho quá trình Reverse Engineering .NET (bản đầy đủ)
Các công cụ cần thiết cho quá trình Reverse Engineering .NET (bản đầy đủ)Levis Nickaster
 
NMCNPM_14_Tuan4nhomsvk17thuchien111.pptx
NMCNPM_14_Tuan4nhomsvk17thuchien111.pptxNMCNPM_14_Tuan4nhomsvk17thuchien111.pptx
NMCNPM_14_Tuan4nhomsvk17thuchien111.pptxLnNguynThnh4
 
Những thuật ngữ thường gặp trong Reverse Engineering .NET
Những thuật ngữ thường gặp trong Reverse Engineering .NETNhững thuật ngữ thường gặp trong Reverse Engineering .NET
Những thuật ngữ thường gặp trong Reverse Engineering .NETLevis Nickaster
 
Sử dụng API Leaflet chi tiết các chức năng
Sử dụng API Leaflet chi tiết các chức năngSử dụng API Leaflet chi tiết các chức năng
Sử dụng API Leaflet chi tiết các chức năngHao CT
 

Similar to Slide bài giảng lập trình Android DTU - Phần 2 (Thiết kế giao diện) (20)

3.thiet ke giao dien tren android
3.thiet ke giao dien tren android3.thiet ke giao dien tren android
3.thiet ke giao dien tren android
 
Hướng Dẫn Lập Trình Android: 3. Thiet ke giao dien tren Android
Hướng Dẫn Lập Trình Android: 3. Thiet ke giao dien tren AndroidHướng Dẫn Lập Trình Android: 3. Thiet ke giao dien tren Android
Hướng Dẫn Lập Trình Android: 3. Thiet ke giao dien tren Android
 
Kiến thức cần thiết làm việc
Kiến thức cần thiết làm việcKiến thức cần thiết làm việc
Kiến thức cần thiết làm việc
 
Chuong 1
Chuong 1Chuong 1
Chuong 1
 
Sức mạnh của jsf 2, phần 2 tạo khuôn mẫu và các thành phần phức hợp
Sức mạnh của jsf 2, phần 2 tạo khuôn mẫu và các thành phần phức hợpSức mạnh của jsf 2, phần 2 tạo khuôn mẫu và các thành phần phức hợp
Sức mạnh của jsf 2, phần 2 tạo khuôn mẫu và các thành phần phức hợp
 
Mau slide
Mau slideMau slide
Mau slide
 
Tài liệu Lập trình Zend Framework 2.x
Tài liệu Lập trình Zend Framework 2.xTài liệu Lập trình Zend Framework 2.x
Tài liệu Lập trình Zend Framework 2.x
 
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...
 
Giáo trình asp.net với c sharp
Giáo trình asp.net với c sharpGiáo trình asp.net với c sharp
Giáo trình asp.net với c sharp
 
Thiết kế giao diện với Liquid
Thiết kế giao diện với LiquidThiết kế giao diện với Liquid
Thiết kế giao diện với Liquid
 
Introduction to data statistics with r - Part I (in Vietnamese)
Introduction to data statistics with r - Part I (in Vietnamese)Introduction to data statistics with r - Part I (in Vietnamese)
Introduction to data statistics with r - Part I (in Vietnamese)
 
Huong dan su dung filter and dashboard trong Jira
Huong dan su dung filter and dashboard trong JiraHuong dan su dung filter and dashboard trong Jira
Huong dan su dung filter and dashboard trong Jira
 
Presentation
PresentationPresentation
Presentation
 
Lập trình hướng đối tượng Chương 6 Design Pattern.pptx
Lập trình hướng đối tượng Chương 6 Design Pattern.pptxLập trình hướng đối tượng Chương 6 Design Pattern.pptx
Lập trình hướng đối tượng Chương 6 Design Pattern.pptx
 
Lập trình hướng đối tượng Chương 6 Design Pattern.pptx
Lập trình hướng đối tượng Chương 6 Design Pattern.pptxLập trình hướng đối tượng Chương 6 Design Pattern.pptx
Lập trình hướng đối tượng Chương 6 Design Pattern.pptx
 
Nội dung đào tạo Revit kiến trúc cho doanh nghiệp
Nội dung đào tạo Revit kiến trúc cho doanh nghiệpNội dung đào tạo Revit kiến trúc cho doanh nghiệp
Nội dung đào tạo Revit kiến trúc cho doanh nghiệp
 
Các công cụ cần thiết cho quá trình Reverse Engineering .NET (bản đầy đủ)
Các công cụ cần thiết cho quá trình Reverse Engineering .NET (bản đầy đủ)Các công cụ cần thiết cho quá trình Reverse Engineering .NET (bản đầy đủ)
Các công cụ cần thiết cho quá trình Reverse Engineering .NET (bản đầy đủ)
 
NMCNPM_14_Tuan4nhomsvk17thuchien111.pptx
NMCNPM_14_Tuan4nhomsvk17thuchien111.pptxNMCNPM_14_Tuan4nhomsvk17thuchien111.pptx
NMCNPM_14_Tuan4nhomsvk17thuchien111.pptx
 
Những thuật ngữ thường gặp trong Reverse Engineering .NET
Những thuật ngữ thường gặp trong Reverse Engineering .NETNhững thuật ngữ thường gặp trong Reverse Engineering .NET
Những thuật ngữ thường gặp trong Reverse Engineering .NET
 
Sử dụng API Leaflet chi tiết các chức năng
Sử dụng API Leaflet chi tiết các chức năngSử dụng API Leaflet chi tiết các chức năng
Sử dụng API Leaflet chi tiết các chức năng
 

Recently uploaded

ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...Nguyen Thanh Tu Collection
 
Ma trận - định thức và các ứng dụng trong kinh tế
Ma trận - định thức và các ứng dụng trong kinh tếMa trận - định thức và các ứng dụng trong kinh tế
Ma trận - định thức và các ứng dụng trong kinh tếngTonH1
 
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...Nguyen Thanh Tu Collection
 
50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...
50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...
50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...Nguyen Thanh Tu Collection
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
Nhóm 10-Xác suất và thống kê toán-đại học thương mại
Nhóm 10-Xác suất và thống kê toán-đại học thương mạiNhóm 10-Xác suất và thống kê toán-đại học thương mại
Nhóm 10-Xác suất và thống kê toán-đại học thương mạiTruongThiDiemQuynhQP
 
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Nguyen Thanh Tu Collection
 
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Nguyen Thanh Tu Collection
 
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...Nguyen Thanh Tu Collection
 
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líKiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líDr K-OGN
 
Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )
Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )
Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )lamdapoet123
 
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoabài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa2353020138
 
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhhôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhhvanhathvc
 
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào môBryan Williams
 
Bai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hocBai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hocVnPhan58
 
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxChàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxendkay31
 
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...Nguyen Thanh Tu Collection
 
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXH
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXHTư tưởng Hồ Chí Minh về độc lập dân tộc và CNXH
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXHThaoPhuong154017
 
200 câu hỏi trắc nghiệm ôn tập PLDC.pdf
200 câu hỏi trắc nghiệm ôn tập  PLDC.pdf200 câu hỏi trắc nghiệm ôn tập  PLDC.pdf
200 câu hỏi trắc nghiệm ôn tập PLDC.pdfdong92356
 
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 

Recently uploaded (20)

ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...
 
Ma trận - định thức và các ứng dụng trong kinh tế
Ma trận - định thức và các ứng dụng trong kinh tếMa trận - định thức và các ứng dụng trong kinh tế
Ma trận - định thức và các ứng dụng trong kinh tế
 
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
 
50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...
50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...
50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Nhóm 10-Xác suất và thống kê toán-đại học thương mại
Nhóm 10-Xác suất và thống kê toán-đại học thương mạiNhóm 10-Xác suất và thống kê toán-đại học thương mại
Nhóm 10-Xác suất và thống kê toán-đại học thương mại
 
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
 
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
 
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
 
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líKiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
 
Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )
Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )
Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )
 
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoabài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
 
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhhôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
 
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô
 
Bai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hocBai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hoc
 
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxChàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
 
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
 
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXH
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXHTư tưởng Hồ Chí Minh về độc lập dân tộc và CNXH
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXH
 
200 câu hỏi trắc nghiệm ôn tập PLDC.pdf
200 câu hỏi trắc nghiệm ôn tập  PLDC.pdf200 câu hỏi trắc nghiệm ôn tập  PLDC.pdf
200 câu hỏi trắc nghiệm ôn tập PLDC.pdf
 
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 

Slide bài giảng lập trình Android DTU - Phần 2 (Thiết kế giao diện)

  • 1. Thiết kế giao diện và sử dụng controls trên Android Chương 3-4-5
  • 2. 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.
  • 4. Layout mẫu <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.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>
  • 5. Một số thuộc tính cơ bản • Layout_width, 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, ta khai báo orientation để chọn sắp theo kiểu nào (horizontal/vertical)
  • 6. 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, trái , phải, 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, các view ko khai báo weight thì sẽ xem qua width và height)
  • 7. Tài liệu • http://www.vogella.com/articles/AndroidListView/ • http://developer.android.com/resources/tutorial s/views/hello-linearlayout.html
  • 8. Giao diện với LinearLayout • Giả sử bạn cần thiết kế một màn hình như sau:
  • 9. Giao diện với LinearLayout • Với LinearLayout (LL), 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) • Thiết kế giao diện:Nguyên tắc chủ yếu là phân nhóm các View liên tiếp kề nhau
  • 10. Giao diện với LinearLayout
  • 11. Bài tập thiết kế layout • 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á.
  • 12. 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, 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. • AbsoluteLayout: dành cho bạn nào làm nhiều với C# …
  • 13. 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, đừ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. • FrameLayout có vấn đề với background • Muốn tìm thuộc tính gì, bấm “android:” rồi đợi suggestion sổ ra xem.
  • 14. Code nhanh một số ví dụ http://developer.android.com/resources/tutorials/vie ws/hello-formstuff.html http://developer.android.com/resources/tutorials/vie ws/hello-webview.html
  • 15. 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.
  • 16. 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.6  samples  ApiDemos  OK  Finish. – Mở thư mục project trong eclipse  src  mở com.example.android.apis.view  mở file List1.java
  • 17. 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, android.R.layout.simple_list_item_1, mStrings); 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ị. • Sau khi tạo xong adapter, truyền vào cho list hiển thị (dòng code bên dưới)
  • 18. List1 • Với đoạn tạo một adapter, ta phân tích ra: – this: context, lúc nào làm view cũng cần rồi – android.R.layout.simple_list_item_1: layout để hiển thị mỗi item trong list, ở đây chỉ có một TextView – mStrings: mảng các chuỗi kí tự, 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ùng layout simple_list_item_1 để hiển thị mỗi item trong list, dữ liệu đưa vào lấy từ mảng các chuỗi mStrings
  • 19. List1 • Tạo một project mới, copy code List1 bỏ qua, 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, int resource, int textViewResourceId, T[] objects) – Chạy ứng dụng
  • 20. List1 • Giải thích: – Với code mẫu ban đầu, 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, adapter sẽ tự hiểu và xử lý. – Với yêu cầu sau này, layout của bạ có nhiều hơn 1 view, bạn cần truyền thêm id của TextView vào (ở đây là R.id.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.
  • 21. List14 • Mở List14 ra, đọc và chạy thử. • http://www.vogella.com/articles/AndroidListV iew/article.html