Tải bản đầy đủ (.docx) (80 trang)

Xây dựng ứng dụng máy tính khoa học cho điện thoại cầm tay thông minh chạy hệ điều hành android

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.83 MB, 80 trang )

LỜI CẢM ƠN

Qua đồ án tốt nghiệp “Xây dựng ứng dụng máy tính khoa học cho điện
thoại cầm tay thông minh chạy hệ điều hành android” lần này. Lời đầu tiên cho
em xin gửi lời cảm ơn tới các thầy cô giảng viên của Trường Đại Học Công
Nghệ Thông tin và truyền thông đã tạo điều kiện và thời gian cho em hoàn thành
đồ án tốt nghiệp này. Đặc biệt cho em xin gửi lời cảm ơn chân thành đến thầy
giáo Th. s Quách Xuân Trưởng người đã dìu dắt và hướng dẫn em để em hoàn
thành bài báo cáo đồ án tốt nghiệp trong thời gian qua. Trong đề tài trình bày có
thể còn nhiều vấn đề chưa được tốt mong các thầy cô tận tình chỉ bảo để em có
những kinh nghiệm giúp ích cho công việc sau này.
Thái nguyên, ngày tháng 06 năm 2012
Sinh viên
Hoàng Thị Thu Hương

1


2


LỜI CAM ĐOAN
Em xin cam đoan toàn bộ đồ án: “Xây dựng ứng dụng máy tính khoa học
cho điện thoại thông minh hệ điều hành Android”. là do bản thân tìm hiểu,
tham khảo, nghiên cứu. Không có sự sao chép nội dung từ các đồ án khác. Tất cả
nội dung hoặc hình ảnh minh họa đều có nguồn gốc xuất xứ rõ ràng từ các tài
liệu tham khảo ở nhiều nguồn khác nhau mà xây dựng nên. Em xin cam đoan
những lời trên là đúng, mọi thông tin sai lệch em xin hoàn toàn chịu trách nhiệm
trước Hội đồng.
Thái Nguyên, tháng 6 năm 2012.
Sinh viên


Hoàng thị thu Hương

3


MỤC LỤC

4


LỜI NÓI ĐẦU

Trong thời điểm hiện nay, trên thế giới cũng như tại Việt Nam thị trường
dành cho điện thoại di động đang trở nên sôi động hơn bao giờ hết. Do thu nhập
của người dân càng ngày càng được cải thiện cũng như cầu trao đổi thông tin
càng ngày càng ra tăng. Và theo điều tra của các nhà nghiên cứu thì chiếc điện
thoại gần như là một vật dụng không thể thiếu và là vật dụng được sử dụng nhiều
nhất đối với mỗi người sở hữu nó. Cùng với sự phát triển đó thì các ứng dụng
trên điện thoại ngày càng phát triển mạnh mẽ do đó xu hướng phát triển việc lập
trình trên điện thoại di động là điều tất yếu. Với những tính năng đặc biệt và tiện
dụng thì hiện giờ Android đang trở thành một hệ điều hành được rất nhiều người
ưa chuộng. Và theo dự đoán của các nhà Nghiên cứu thì năm 2012 hệ điều hành
Android thực sự trở thành vua trong hệ điều hành của thế giới di động. Nắm bắt
được xu thế phát triển của lập trình ứng dụng trên điện thoại cho nên trong thời
gian làm đồ án tốt nghiệp lần này em quyết định chọn đề tài: “Xây dựng máy
tính khoa học cho điện thoại thông minh hệ điều hành Android”
Nội dung của bài báo cáo tốt nghiệp gồm có 3 phần:
Chương 1: Hệ điều hành Android
Chương 2: Phân tích chương trình máy tính số học
Chương 3:Thiết kế và xây dựng ứng dụng


5


CHƯƠNG 1:
SƠ LƯỢC VỀ HỆ ĐIỀU HÀNH ANDROID

1.1 Lịch sử hình thành Android:
Ban đầu, Android là hệ điều hành cho các thiết bị cầm tay dựa trên lõi
Linux do công ty Android Inc. (California, Mỹ) thiết kế. Công ty này sau đó
được Google mua lại vào năm 2005 và bắt đầu xây dựng Android Platform. Các
thành viên chủ chốt tại ở Android Inc. gồm có: Andy Rubin, Rich Miner, Nick
Sears, and Chris White.

Hình 1-1 Lịch sử Android
Cuối năm 2007,

thuộc về OHA( Open Handset Alliance) Liên minh

theieets bị cầm tay mã nguồn mở gồm các thành viên nổi bật trong ngành viễn
thôgn và thiết bị cầm tay như: Texas Instruments, Broadcom Corporation,
Google, HTC, Intel, LG, Marvell Technology Group, Motorola, Nvidia,
Qualcomm, Samsung Electronics, Sprint Nextel, T-Mobile, ARM Holdings,
Atheros Communications, Asustek Computer Inc, Garmin Ltd, Softbank, Sony
Ericsson, Toshiba Corp, and Vodafone Group,…
Mục tiêu của liên minh này là tạo ra một sản phẩm điện thoại tốt hơn và
do đó Android ra đời. Thiết bị cầm tay có khả năng Android đầu tiên trên thị
6



trường là thiết bị G1 do HTC sản xuất và được bán trên T-Mobile. Một vài ngày
sau đó Google công bố sự ra mắt của phiên bản Android SDK release Candidate
1.0.

1.2 Kiến trúc của Android

Hình 1-2 Kiến trúc Android

1.2.1 Tầng ứng dụng (Application):
Android được tích hợp sẵn một số ứng dụng cần thiết cơ bản : Browse,
camera, Phone,….Tất cả các ứng dụng này đều được viết bằng Java

1.2.2. Application Framework
Là một nền tảng phát triển mở, Android cung cấp cho các nhà phát triển
khả năng xây dựng các ứng dụng cực kì phong phú và sáng tạo, có thể tự do tận
dụng thiết bị của phần cứng thông tin địa điểm truy cập, các dịch vụ chạy nền…..
1.2.3. Library:
Android bao gồm một tập hợp các thư viện C/C++ được sử dụng bởi
nhiều thành phần khác nhau trong hệ thống Android. Một số thư viện cơ bản:

7




Hệ thống thư viện C : triển khai BSD-derived có nguồn gốc từ các hệ
thống thư viện chuẩn C (libc), chỉnh để nhúng vào các thiết bị dựa trên

Linux.
• Media Libraries – Dựa trên gói Video OpenCORE; các thư viện hỗ trợ

phát và ghi âm của các định dạng âm thanh và video phổ biến, cũng như
các file hình ảnh tĩnh, bao gồm MPEG4, H.264, MP3, AAC, AMR, JPG,
and PNG
• Surface Manager – Quản lý việc truy xuất vào hệ thống hiển thị
• LibWebCore - một trình duyệt web hiện đại có quyền hạn trong cả trình
duyệt Android và hiển thị nhúng web.
• SGL – Các cơ sở công cụ đồ họa 2D.
• 3D libraries - Thực hiện dựa trên OpenGL ES 1.0 APIs; Thư viện sử dụng
hoặc là tăng tốc phần cứng 3D (nếu có) hoặc bao gồm tối ưu hóa phần
mềm 3D.
• FreeType - bitmap and vector font rendering.
• SQLite - a powerful and lightweight relational database engine available
to all applications.
1.2.4. Android Runtime
Tại cùng một tầng như các thư viện, android runtime cung cấp một bộ lõi
thư viện cho phép các nhà phát triển viết các ứng dụng android bằng cách sử
dụng ngôn ngữ lập trình java. Android runtime cũng bao gồm các máy ảo Dalvik,
cho phép mọi ứng dụng android chạy trong tiến trình riêng của mình. Dalvik là
một máy ảo chuyên dụng được thiết kế đặc biệt cho android và tối ưu hóa cho
các thiết bị điện thoại di động với giới hạn bộ nhớ và CPU
1.2.5. Linux Kernel:
Android dựa trên Linux phiên bản 2.6 cho hệ thống dịch vụ cốt lõi như
security, memory management, process management, network stack, and driver
model. Kernel Linux hoạt động như một lớp trừu tượng hóa giữa phần cứng và
phần còn lại của phần mềm stack.

8


1.2. Công cụ và cài đặt:

Bước 1: Download và giải nén Eclipse Galileo tại :
Chúng ta nên sử dụng Eclipse gói Galileo để
lát nữa đỡ phải cầu hình lại Eclipse.
Bước 2: Cài đặt ADT
-

Mở Help -> Install new software ->Add
Ở mục Name: ADT plugin hoặc bạn có thể nhập tên khác cũng được
Location: Nhập vào link: />OK-> Next cho đến khi cài đặt hoàn thành

Bước 3: Cài đặt Android SDK
- Tải Android SDK tại và giải

nén
- Mở Eclipse -> Window -> Preferences -> Android -> trong mục SDK
location chọn Browse > đưa đường dẫn đến thư mục SDK vừa giải nén> bấm Apply-> Install
Bước 4: Tạo một máy điện thoại ảo (AVD)
- Vào Window-> Android SDK and AVD manager -> Virtual devices-

> New
- Điền vào các mục Name, Target: chọn API level cho phù hợp ứng dụng
bạn chọn, SDcard chọn Size dùng, nếu không thì để trống cũng được.

9


1.4. Cấu trúc một Project Android:

Hình 1-3: Cấu trúc 1 project Android
1.4.1. AndroidManifest.xml:

Mỗi một project Android khi được tạo ra thì đều tạo ra một file
AndroidManifest.xml , file này được dùng để định nghĩa các screen sử dụng, các
permission cũng như các theme cho ứng dụng. Đồng thời nó cũng chứa thông tin
về phiên bản SDK cũng như main activity sẽ chạy đầu tiên.
File này được tự động sinh ra khi tạo một Android project. Trong file manifest
bao giờ cũng có 3 thành phần chính đó là: application, permission và version.
1.4.2. Thư mục src
Chứa source code ứng dụng. Gồm các package và các class.

10


1.4.3. Thư mục ges
Chứa các file tự động phát sinh( Thường gặp nhất là file R.class )
File R.java là một file tự động sinh ra ngay khi tạo ứng dụng, file này
được sử dụng để quản lý các thuộc tính được khai báo trong file XML của ứng
dụng và các tài nguyên hình ảnh.
Mã nguồn của file R.java được tự động sinh khi có bất kì một sự kiện nào
xảy xa làm thay đổi các thuộc tính trong ứng dụng. Chẳng hạn như, bạn kéo và
thả một file hình ảnh từ bên ngoài vào project thì ngay lập tức thuộc tính đường
dẫn đến file đó cũng sẽ được hình thành trong file R.java hoặc xoá một file hình
ảnh thì đường dẫn tương ứng đến hình ảnh đó cũng tự động bị xoá.
Là file mà ta hoàn toàn không cần phải đụng chạm gì đến trong cả quá
trình xây dựng ứng dụng.
1.4.4. Thưc mục res :
Chứa file main.xml và các hình ảnh có liên quan để thiết kế giao diện cho
màn hình

1.5. Những khái niệm cơ bản trong Lập trình Android:
Một ứng dụng Android bao gồm 4 thành phần chính Active, Inactive,

Visitable, Invisible.
1.5.1. Activity:
Là một trong bốn thành phần chính của một ứng dụng Android, được
dùng để hiển thị màn hình.

11


Lifecycle của Activity:

Hình 1-4. Vòng đời của activity
Một ứng dụng có thể gồm chỉ một activity hay nhiều activity. Thông
thường, một trong số các activity được đánh dấu như là activity đầu tiên phải
được trình diễn tới người dùng khi ứng dụng được khởi động. Chuyển từ một
activity sang activity khác được hoàn thành bằng cách cho activity hiện thời khởi
động activity kế tiếp.
Class cơ sở Activity định nghĩa một loạt các sự kiện mà điều chỉnh vòng
đời của một hoạt động. Class Activity định nghĩa các sự kiện:
 onCreate(): Được gọi khi hoạt động được tạo ra lần đầu tiên
 onStart(): Được gọi khi hoạt động trở nên hữu hình so với người dùng
 onResume(): Được gọi khi hoạt động bắt đầu tương tác với người sử

dụng

12


 onPause(): Được gọi để dừng các hoạt động hiện tại và nối lại các hoạt

động trước đó

 onStop(): Được gọi khi hoạt động không còn hiển thị với người dùng
 onDestroy(): Được gọi trước khi hoạt động bị phá hủy bởi hệ thống (bằng

tay hoặc bằng hệ thống để bảo tồn bộ nhớ
 onRestart(): Được gọi khi hệ thống đã được dừng lại và khởi động lại

một lần nữa
1.5.2.Service:
Một service không có giao diện trực quan, nó chạy trên nền trong một
khoảng thời gian không xác định. Ví dụ một service có thể chơi nhạc nền, hay nó
nạp dữ liệu trên mạng hay tính toán cái gì đó và cung cấp kết quả cho activity
cần đến nó. Mỗi service mở rộng từ lớp cơ sở Service
Một ví dụ cổ điển là media player chơi các bài hát từ một danh sách. Ứng
dụng player có thể có một hay hai activity cho phép người dùng chọn bài hát và
bắt đầu chơi. Tuy nhiên, music playback không tự nó được xử lý bởi một activity
bởi vì người dùng sẽ mong muốn chơi tiếp nhạc khi họ rời khỏi player và làm cái
gì đó khác. Để tiếp tục chơi nhạc, media player activity có thể khởi động một
service chạy trên nền. Hệ thống sẽ giữ cho music playback service chạy thậm chí
khi activity khởi động nó rời khỏi màn hình.
Trong khi kết nối, bạn có thể giao tiếp với dịch vụ thông qua giao diện mà
service đó trưng ra. Ví dụ như trong music service, giao diện này có thể cho phép
người dùng pause, stop và restart lại playback.
Giống như các activity và các thành phần khác khác, service chạy trong
thread chính của tiến trình ứng dụng. Vì thế chúng không thể chặn những thành
phần khác hay giao diện người dùng, chúng thường tạo ra các thread khác cho
các nhiệm vụ hao tốn thời gian.

13



Hình 1-5. Chu trình sống service
1.5.3. Broadcast Receive:
Một Broadcast Rreceiver là một thành phần không làm gì ngoài việc nhận
và đáp lại các thông báo broadcast. Nhiều broadcast khởi đầu trong mã hệ thống ví dụ như thông báo múi giờ thay đổi, pin yếu, ảnh đã được chụp, hay người
dùng đã thay đổi ngôn ngữ … Các ứng dụng có thể tạo ra các broadcast, chẳng
hạn để ứng dụng khác biết được một số dữ liệu đã được tải về thiết bị và sẵn sàng
cho việc sử dụng chúng.
Một ứng dụng có thể có một số Broadcast Receiver để đáp lại bất cứ
thông báo nào mà nó cho là quan trọng. Tất cả các receiver mở rộng từ lớp cơ sở
BroadcastReceiver.
Broadcast Receiver không hiển thị một giao diện người dùng. Tuy nhiên
chúng có thể bắt đầu một activity để đáp lại thông tin mà chúng nhận, hay chúng
có thể sử dụng NotificationManager để cảnh báo người dùng. Notifications có
thể lấy sự chú ý của người dùng bằng nhiều cách, lóe sáng đèn sau, rung, tạo ra
âm thah, vân vân. Chúng thường lấy một biểu tượng bền vững trong thanh trạng
thái, cái mà người dùng có thể mở để lấy thông điệp.
14


1.5.4.Content provider:
Một content provider tạo ra một tập cụ thể các dữ liệu của ứng dụng khả
dụng cho các ứng dụng khác. Dữ liệu có thể được lưu trữ trong hệ thống file,
trong một cơ sở dữ liệu SQLite, hay trong một cách khác nào đó. Content
provider mở rộng lớp cơ sở ContentProvider để cài đặt một tập các chuẩn các
phương thức cho phép các ứng dụng khác đạt được và lưu trữ dữ liệu của kiểu
mà nó điều khiển. Tuy nhiên, các ứng dụng không gọi trực tiếp các phương thức
này, chúng sử dụng một đối tượng ContentResolver và gọi các phương thức của
nó. Một ContentResolver có thể nói chuyện với bất cứ content provider nào,
chúng cộng tác với provider để quản lý giao tiếp liên tiến trình.
1.5.5.Manifest File:

Trước khi Android có thể khởi động một thành phần ứng dụng, nó phải
biết rằng thành phần đó tồn tại. Vì vậy, ứng dụng khai báo những thành phần của
mình trong một manifest file được gắn vào Android package, file .apk này cũng
giữ chứa mã của ứng dụng và các tài nguyên.
Manifest file là một file XML có cấu trúc và thường được đặt tên là
AndroidManifest.xml cho mọi ứng dụng. Nó thực hiện một số bổ sung để khai
báo các thành phần của ứng dụng, như là nêu tên các thư viện ứng dụng cần đến,
và xác định các quyền hạn của ứng dụng muốn được cấp.
Ví dụ như nó khai báo các Activity trong chương trình của chúng ta, khi
khởi động chương trình thì Activity nào sẽ được thực hiện đầu tiên, các quyền
truy cập Internet, SDCard, hay các vấn đề về gửi nhận tin nhắn, cuộc gọi...
1.5.6. Giao diện người dùng trong Android:
Trong một ứng dụng Android, giao diện người dùng được xây dựng bằng
cách sử dụng View và ViewGroup đối tượng. Có nhiều loại quan điểm và các
nhóm view, mỗi một trong số đó là hậu duệ của lớp View. View objects là các
đơn vị cơ bản của biểu hiện giao diện người dùng trên nền tảng Android. Các
class xem như là cơ sở phục vụ cho class con được gọi là "widget", trong đó
cung cấp đầy đủ các đối tượng thực hiện giao diện, giống như các lĩnh vực văn
bản và nút. Class ViewGroup phục vụ như là cơ sở cho lớp con được gọi là "

15


layouts", cung cấp các loại khác nhau của kiến trúc bố trí, như linear, tabular và
relative.
-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.
a. View
Tất cả mọi widget đều có chung các thuộc tính cơ bản như là cách trình bày vị
trí, background, kích thước, lề,… Tất cả những thuộc tính chung này được thể
hiện hết ở trong đối tượng View.
Trong Android Platform, các screen luôn được bố trí theo một kiểu cấu trúc phân
cấp như hình dưới. Một screen là một tập hợp các Layout và các widget được bố
trí có thứ tự. Để thể hiện một screen thì trong hàm onCreate của mỗi Activity cần
phải được gọi một hàm là setContentView(R.layout.main); hàm này sẽ load giao
diện từ file XML lên để phân tích thành mã bytecode.

Hình 1-6 Cấu trúc một giao diện ứng dụng Android

16


b. ViewGroup
ViewGroup thực ra chính là View hay nói đúng hơn thì ViewGroup chính là các
widget Layout được dùng để bố trí các đối tượng khác trong một screen. Có một
số loại ViewGroup như sau:


LinearLayout

LinearLayout được dùng để bố trí các thành phần giao diện theo chiều ngang
hoặc chiều dọc nhưng trên một line duy nhất mà không có xuống dòng.
LinearLayout làm cho các thành phần trong nó không bị phụ thuộc vào kích
thước của màn hình. Các thành phần trong LinearLayout được dàn theo những tỷ
lệ cân xứng dựa vào các ràng buộc giữa các thành phần.


Hình 1-7 Bố trí các widget sử dụng LinearLayout


FrameLayout

FrameLayout được dùng để bố trí các đối tượng theo kiểu giống như là các Layer
trong Photoshop. Những đối tượng nào thuộc Layer bên dưới thì sẽ bị che khuất
bởi các đối tượng thuộc Layer nằm trên. FrameLayer thường được sử dụng khi
muốn tạo ra các đối tượng có khung hình bên ngoài chẳng hạn như contact image
button.

17


Hình 1-8 Bố trí các widget trong FrameLayout


AbsoluteLayout

Layout này được sử dụng để bố trí các widget vào một vị trí bất kì trong layout
dựa vào 2 thuộc tính toạ độ x, y. Tuy nhiên, kiểu layout này rất ít khi được dùng
bởi vì toạ độ của các đối tượng luôn cố định và sẽ không tự điều chỉnh được tỷ lệ
khoảng cách giữa các đối tượng. Khi chuyển ứng dụng sang một màn hình có
kích thước với màn hình thiết kế ban đầu thì vị trí của các đối tượng sẽ không
còn được chính xác như ban đầu.


RetaliveLayout


Layout này cho phép bố trí các widget theo một trục đối xứng ngang hoặc dọc.
Để đặt được đúng vị trí thì các widget cần được xác định một mối ràng buộc nào
đó với các widget khác. Các ràng buộc này là các ràng buộc trái, phải, trên, dưới
so với một widget hoặc so với layout parent. Dựa vào những mối ràng buộc đó
mà RetaliveLayout cũng không phụ thuộc vào kích thước của screen thiết bị.
Ngoài ra, nó còn có ưu điểm là giúp tiết kiệm layout sử dụng nhằm mục đích
giảm lượng tài nguyên sử dụng khi load đồng thời đẩy nhanh quá trình xử lý.

18


Hình 1-9. Bố trí widget trong RetaliveLayout


TableLayout

Layout này được sử dụng khi cần thiết kế một table chứa dữ liệu hoặc cần bố trí
các widget theo các row và column. Chẳng hạn như, giao diện của một chiếc máy
tính đơn giản hoặc một danh sách dữ liệu.

19


Hình 1-10. Bố trí widget trong TableLayout
1.5.7.Các thành phần giao diện và Widget:
- 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.
- 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ó. Một số widget:
20


c. Button
Sở dĩ widget button được giới thiệu đầu tiên trong số các widget khác là vì đây là
đối tượng có thể nói là được dùng nhiều nhất trong hầu hết các ứng dụng
Android.
Để thiết kế giao diện với một button ta có 2 cách như sau:


Thiết kế bằng XML
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/cmdButton1"
android:text="Touch me!"
android:onClick="touchMe"/>


Thuộc tính android:onClick="touchMe" được dùng để nắm bắt sự kiện click vào
button. Khi sự kiện click button xảy ra thì phương thức “touchMe” được khai báo
trong thẻ thuộc tính sẽ được gọi. Nếu trường hợp phương thức “touchMe” chưa
được khai báo trong file mã nguồn tương ứng thì sẽ phát sinh một exception.
Ngược lại, phương thức “touchMe” sẽ nhận được một đối tham biến là đối tượng
View nơi đã phát sinh ra sự kiện. Đối tượng View này có thể ép kiểu trực tiếp
sang kiểu Button vì thực chất nó là một button, trong file mã nguồn ta có thể khai
báo một hàm như sau:
public void touchMe(View v){
Button me = (Button) v;
Me.setText(“Touched”);
}
d. ImageButton
Cũng tương tự như Button, ImageButton chỉ có thêm một thuộc tính android: src
= “@drawable/icon” để thêm hình ảnh vào và không có thẻ text.
android:layout_width="wrap_content"
android:layout_height="wrap_content"

21


android:id="@+id/cmdButton1"
android:src="@drawable/icon"
android:onClick="touchMe"/>

Hình 1-13 ImageButon
e. ImageView
Được dùng để thể hiện một hình ảnh. Nó cũng giống như ImageButton, chỉ khác
là không có hình dáng của một cái button. Code:

ImageView iv = new ImageView(this);
iv.setImageResource(R.drawable.icon);

Hình 1-11 .ImageView và ImageButton

22


f. ListView
Được sử dụng để thể hiện một danh sách các thông tin theo từng cell. Mỗi cell
thông thường được load lên từ một file XML đã được cố định trên đó số lượng
thông tin và loại thông tin cần được thể hiện.
Để thể hiện được một list thông tin lên một screen thì cần phải có 3 yếu tố chính:


Data Source: Data Source có thể là một ArrayList, HashMap hoặc bất kỳ
một cấu trúc dữ liệu kiểu danh sách nào.



Adapter: Adapter là một class trung gian giúp ánh xạ dữ liệu trong Data
Source vào đúng vị trí hiển thị trong ListView. Chẳng hạn, trong Data
Source có một trường name và trong ListView cũng có một TextView để
thể hiện trường name này. Tuy nhiên, ListView sẽ không thể hiển thị dữ
liệu trong Data Source lên được nếu như Adapter không gán dữ liệu vào
cho đối tượng hiển thị.



ListView: ListView là đối tượng để hiển thị các thông tin trong Data

Source ra một cách trực quan và người dùng có thể thao tác trực tiếp trên
đó.

Hình 1-12 Minh hoạ cho một ListView
g. TextView
TextView ngoài tác dụng là để hiển thị văn bản thì nó còn cho phép định dạng
nội dung bằng thẻ html.
23


TextView textView = (TextView)findViewById(R.id.textView);
CharSequence styledText =
Html.fromHtml("<i>This</i> is some <b>styled</b> <s>text</s>");
textView.setText(styledText);
Nội dung TextView cũng có thể được định dạng bằng thẻ html ngay trong XML.
h. EditText
Trong Android đối tượng EditText được sử dụng như một TextField hoặc một
TextBox.
android:id="@+id/EditText01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"
android:textSize="20dip"
android:textColor="#000000"
android:text="Hello Android!"
android:singleLine="true"
android:inputType="textCapWords"/>
Các thuộc tính cần chú ý sử dụng EditText đó là:
android:inputType = “…” sử dụng để xác định phương thức nhập cho EditText.

Chẳng hạn như khi bạn muốn một ô để nhập password hay một ô để nhập Email
thì thuộc tính này sẽ làm điều đó.
android:singleLine = “true” EditText của bạn sẽ trở thành một TextField, ngược
lại sẽ là TextBox.
i. CheckBox
Nhận 2 giá trị true hoặc false. Đối tượng CheckBox cho phép chọn nhiều item
cùng một lúc.
Khai báo: CheckBox cb = new CheckBox(Context …);
XML:

24


android:id="@+id/CheckBox01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Check me"
android:checked="true"/
l. Quick Search Box
Một trong những tính năng mới trong phiên bản Android 1.6 đó là Quick Search
Box. Đây là khuôn khổ tìm kiếm mới trên toàn hệ thống Android, điều này làm
cho người dùng có thể nhanh chóng tìm kiếm bất cứ thứ gì có trên chiếc điện
thoại Android của họ và cả các tài nguyên trên web khi họ đang online. Nó tìm
kiếm và hiển thị kết quả tìm kiếm ngay khi bạn đang gõ. Nó cũng cung cấp các
kết quả từ các gợi ý tìm kiếm web, danh sách doanh nghiệp địa phương, và thông
tin khác từ Google, chẳng hạn như báo giá cổ phiếu, thời tiết, và tình trạng
chuyến bay. Tất cả điều này có sẵn ngay từ màn hình chủ, bằng cách khai thác
trên Quick Search Box (QSB).


25


×