TRƯỜNG ĐẠI HỌC CẦN THƠ
KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
Giảng viên hướng dẫn
Th.s Đoàn Hòa Minh
Sinh viên thực hiện
Hồ Minh Triết
MSSV 1091638
Cần Thơ, 2013
Luận văn tốt nghiệp : Ứng dụng tô màu cho bé
LỜI CẢM ƠN
Lời nói đầu tiên, xin chân thành gửi lời cảm ơn đến GVHD thầy Đoàn Hòa Minh,
cám ơn thầy đã cho em cơ hội thực hiện đề tài và đã nhiệt tình hướng dẫn trong suốt thời
gian làm đề tài.
Xin cám ơn các thầy cô khoa CNTT-TT đã giảng dạy và truyền đạt những kiến
thức quý báu trong suốt những năm học qua. Cám ơn tất cả bạn bè đã ủng hộ, giúp đỡ,
chia sẻ và đóng góp những ý tưởng để hoàn thành đề tài.
Cuối cùng, xin gửi lời cám ơn sâu sắc đến ba, mẹ và các người thân trong gia
đình đã tạo điều kiện, môi trường học tập tốt nhất để hoàn thành đề tài.
Mặc dù đã cố gắng hết sức mình, tuy nhiên đề tài sẽ không tránh khỏi những
thiếu sót. Rất mong quý Thầy Cô thông cảm và góp ý để đề tài hoàn thiện hơn !
Cần Thơ, ngày 17 tháng 4 năm 2013
Người viết
Hồ Minh Triết
MỤC TIÊU VÀ NHIỆM VỤ ...................................................................................................... 9
1.4
PHẠM VI ĐỀ TÀI .................................................................................................................... 10
1.5
PHƯƠNG PHÁP NGHIÊN CỨU ......................................................................................... 10
CHƯƠNG II : TÌM HIỂU HỆ ĐIỀU HÀNH ANDROID .................................................................... 11
2.1
SƠ LƯỢC ANDROID ............................................................................................................ 11
2.2
CÁC PHIÊN BẢN HỆ ĐIỀU HÀNH ANDROID .................................................................. 11
2.2.1
Android 1.0 ....................................................................................................................... 11
2.2.2
Android 1.1 ....................................................................................................................... 11
2.2.3
Android 1.5: Cupcake ....................................................................................................... 12
Android 4.2: vẫn là Jelly Bean .......................................................................................... 14
2.3
2.3.1
CÁC THÀNH PHẦN CHÍNH CỦA ANDROID .................................................................... 15
ACTIVITY ........................................................................................................................ 15
GVHD : Th.s Đoàn Hòa Minh
SVTH: Hồ Minh Triết
Trang 2
Luận văn tốt nghiệp : Ứng dụng tô màu cho bé
2.3.2
SERVICE .......................................................................................................................... 20
2.3.3
CONTENT PROVIDER ................................................................................................... 22
2.3.4
INTENT ............................................................................................................................ 23
2.3.5
2.5.5
Button ................................................................................................................................ 33
2.5.6
ImageButton ...................................................................................................................... 34
2.5.7
Dialog ................................................................................................................................ 34
2.5.8
Toast .................................................................................................................................. 36
2.5.9
Gallery............................................................................................................................... 37
2.6
LẬP TRÌNH GIAO DIỆN MỨC THẤP.................................................................................. 39
2.6.1
Bitmap ............................................................................................................................... 39
2.6.2
Chức năng chọn nét vẽ, hình dạng muốn vẽ .................................................................... 48
3.1.4
Chức năng thay đổi nét độ lớn nét vẽ ................................................................................ 52
3.1.5
Chức thay đổi màu sắc nét vẽ ........................................................................................... 55
3.1.6
Chức năng phục hồi .......................................................................................................... 57
3.1.7
chọn.
Chức năng chọn hình kèm theo ứng dụng, phát âm tiếng anh ứng với nội dung hình đã
59
GVHD : Th.s Đoàn Hòa Minh
SVTH: Hồ Minh Triết
Trang 3
Luận văn tốt nghiệp : Ứng dụng tô màu cho bé
3.1.8
HƯỚNG PHÁT TRIỂN .............................................................................................................. 75
TÀI LIỆU THAM KHẢO.......................................................................................................................... 77
MỘT SỐ HÌNH ẢNH TỪ ỨNG DỤNG ................................................................................................ 78
GVHD : Th.s Đoàn Hòa Minh
SVTH: Hồ Minh Triết
Trang 4
Luận văn tốt nghiệp : Ứng dụng tô màu cho bé
DANH MỤC HÌNH
STT
Hình 1
Hình 2
Hình 3
Hình 4
Hình 5
Hình 6
Hình 7
Hình 8
Hình 9
Hình 10
Hình 11
Hình 12
Hình 13
Dialog chọn hình tải lên
Hình từ ứng dụng 1
Hình từ ứng dụng 2
Hình từ ứng dụng 3
Hình từ ứng dụng 4
Hình từ ứng dụng 5
Hình từ ứng dụng 6
DANH MỤC BẢNG
STT
Bảng 1
Bảng 2
TÊN BẢNG
Bảng thuộc tính của Intent
Bảng Action được xây dựng sẵn
GVHD : Th.s Đoàn Hòa Minh
SVTH: Hồ Minh Triết
Trang 5
Luận văn tốt nghiệp : Ứng dụng tô màu cho bé
KÝ HIỆU VÀ VIẾT TẮT
STT
1
2
2
3
4
TỪ KHÓA
Bitmap
Canvas
Path
Paint
GVHD : Th.s Đoàn Hòa Minh
TRANG
39
41
42
42
SVTH: Hồ Minh Triết
Trang 6
Luận văn tốt nghiệp : Ứng dụng tô màu cho bé
TÓM TẮT
Trong những năm gầy đây, cùng với sự phát triển của khoa học và công nghệ,
ngày càng có nhiều hệ điều hành cho các thiết bị di động được phát triển. Trong số đó
Android đang chiếm lĩnh thị trường và ngày càng phát triển mạnh mẽ hơn.
Trong xu hướng phát triển đó, nghiên cứu và phát triển các ứng dụng trên hệ điều
Luận văn tốt nghiệp : Ứng dụng tô màu cho bé
ABSTRACT
In recent years, with the development of science and techonology, there has been
more and more operating systems developed for handheld devices. Among of those,
Android, is dominating the market and growing strongly.
In the trend of development, the application research and development on the Android
operating system is attracting more students and promises to bring more job
opportunities in the future. Therefore, I chose the topic “Coloring Application for Kids”
for the purpose of studying the Android operating system and developing an application
that is expected to be strongly developed in the following years. Coloring Application
for Kids supports:
Drawing and painting on self-creative pictures.
Drawing and painting on pictures available in the application.
Drawing and painting on pictures uploaded from card reader.
Adjusting brushwork's color and size.
Downloading pictures with the application on current drawing.
Translating and pronouncing English definition of current picture with the
application.
Storing and sharing complete picture.
With the method of theoretical study and virtual-machine practice, I have
Với mong muốn đó, tôi đã quyết định thực hiện đề tài “Ứng dụng tô màu cho bé”
nhằm mục đích góp phần làm phong phú cho các ứng dụng tô, vẽ trên điện thoại
Android, đồng thời cũng là cơ hội nghiên cứu và phát triển ứng dụng di động cho
Android, một lĩnh vực hứa hẹn sẽ phát triển mạnh trong những năm sắp tới.
LỊCH SỬ VẤN ĐỀ
Hiện tại trên Google Play đã có nhiều ứng dụng tô, vẽ trên điện thoại. Tuy nhiên,
mỗi ứng dụng có điểm mạnh và điểm yếu riêng . Đa số ứng dụng chưa kết hợp giữa tô
và vẽ. Vì thế đề tài này được thực hiện nhằm khắc phục những khuyết điểm này.
1.2
1.3
MỤC TIÊU VÀ NHIỆM VỤ
Mục tiêu :
-
Tìm hiểu hệ điều hành Android, nâng cao khả năng lập trình và khả năng
phát triển ứng dụng trên nền tảng Android
Nâng cao khả năng báo cáo, thuyết trình và khả năng tự nghiên cứu.
Phát triển phần mềm hữu ích trên điện thoại và máy tính bảng sử dụng hệ
điều hành Android, giúp cho bé vừa chơi vừa học.
GVHD : Th.s Đoàn Hòa Minh
SVTH: Hồ Minh Triết
Trang 9
Phục hồi những nét vẽ, tô trước đó
Lưu lại hình ảnh vẽ hoặc tô
Chia sẻ hình vẽ lên các mạng xã hội và hoặc đính kèm vào mail thông qua
các ứng dụng tương ứng được cài đặt trên điện thoại.
1.5 PHƯƠNG PHÁP NGHIÊN CỨU
Để hoàn thành đề tài, tôi thực hiện các phương pháp sau :
Tìm hiểu lập trình android, nghiên cứu các API android hổ trợ việc phát triển
ứng dụng
Nghiên cứu các giải thuật.
Phát triển ứng dụng .
GVHD : Th.s Đoàn Hòa Minh
SVTH: Hồ Minh Triết
Trang 10
Luận văn tốt nghiệp : Ứng dụng tô màu cho bé
CHƯƠNG II : TÌM HIỂU HỆ ĐIỀU HÀNH ANDROID
2.1
SƠ LƯỢC ANDROID
Android là một hệ điều hành dựa trên nền tảng Linux được thiết kế dành cho các
thiết bị di động có màn hình cảm ứng như điện thoại thông minh và máy tính bảng. Ban
đầu, Android được phát triển bởi Android Inc. Sau đó được Google mua lại vào năm
2005. Kể từ đó, Google đã có những quyết định đầu tư, phát triển cho hệ điều hành này.
Đến năm 2007, Liên minh thiết bị di động mã nguồn mở (Open Handset Alliance)
Trang 11
Luận văn tốt nghiệp : Ứng dụng tô màu cho bé
bao gồm nhiều tính năng, phiên bản này bổ sung một số chức năng mới cho Google
Maps hiển thị chi tiết hơn, bàn phím ảo gọi điện thoại đã có thể hiển thị hoặc ẩn khi gọi,
chương trình SMS cho phép người dùng lưu tập tin đính kèm. Android 1.1 sửa một số
lỗi trong Android 1.0.
2.2.3 Android 1.5: Cupcake
Ra mắt: ngày 30-4-2009.
Cupcake, tên mã đầu tiên áp dụng cho phiên bản Android. Cupcake mang
nhiều tính năng mới như bàn phím ảo có khả năng dự đoán từ đang gõ, từ điển từ ngữ do
người dùng đặt ra, hỗ trợ widget trên giao diện chủ, quay phim và phát lại video clip,
lược sử thời gian cuộc gọi, chế độ tự động xoay màn hình theo hướng sử dụng (screen
rotation). Trình duyệt web trong Cupcake có thêm khả năng sao chép/ dán (copy/paste).
Ngoài ra, phiên bản này cho phép người dùng hiển thị hình ảnh trong danh bạ,
một điểm thú vị mà hầu hết người dùng điện thoại di động muốn có. Màn hình chuyển
đổi và hình ảnh khi khởi động máy được làm mới.
2.2.4 Android 1.6: Donut
Ra mắt: ngày 30-9-2009.
Donut khắc phục các chức năng "lỏng lẻo" trong Cupcake, mở rộng chức năng
tìm kiếm bằng giọng nói và ký tự đến bookmark và danh bạ. Android Market trở thành
"chợ đầu mối" để người dùng tìm kiếm và xem các ứng dụng Android. Ứng dụng chụp
ảnh và quay phim trong Donut nhanh hơn. Hệ điều hành hỗ trợ màn hình có độ phân giải
lớn hơn, hướng đến các thế hệ smartphone màn hình lớn.
2.2.5 Android 2.0: Eclair
Ra mắt: ngày 26-10-2009.
Chỉ sau gần một tháng ra mắt Donut (Android 1.6), Google tung ra Eclair, phiên
Lần đầu tiên Android cho phép cài đặt ứng dụng (app) lên thẻ nhớ SD thay vì
mặc định cài ngay vào bộ nhớ trong của thiết bị. Điểm "đầu tiên" nữa trong Froyo bao
gồm mật khẩu đã hỗ trợ số và chữ số. Thiết bị đầu tiên mang nhãn Froyo ra mắt thị
trường là HTC Nexus One.
2.2.7 Android 2.3: Gingerbread
Ra mắt ngày: 6-12-2010.
Đến cuối năm 2012, Gingerbread vẫn đang "phủ sóng" trên rất nhiều thiết bị dùng
Android, chiếm đến hơn phân nửa (54%). Google hợp tác Samsung trình làng dòng
smartphone đầu tiên sử dụng Gingerbread mang tên Nexus S, hỗ trợ công nghệ giao tiếp
tầm gần NFC.
Gingerbread đưa vào hệ thống một công cụ quản lý tải tập tin, cho phép theo dõi
và truy xuất đến các tập tin đã tải về máy. Hệ thống này hỗ trợ nhiều camera cho các
thiết bị có camera mặt sau và trước, quản lý nguồn pin hiệu quả hơn, tiết kiệm thời
lượng pin. Phiên bản này khắc phục khá nhiều lỗi từ Froyo, kèm theo một số điều chỉnh
trong giao diện người dùng (UI).
2.2.8 Android 3.0: Honeycomb
Ra mắt: ngày 22-2-2011.
Đây không chỉ là một phiên bản, mà có thể xem là một thế hệ Android đầu tiên
dành riêng cho máy tính bảng (tablet), ra mắt cùng tablet Motorola XOOM.
Mang những tính năng từ thế hệ Android 2.x, Android 3.0 cải tiến giao diện phù
hợp với cách sử dụng máy tính bảng, bàn phím ảo thân thiện hơn, hỗ trợ xử lý đa tác vụ
(multi-tasking), cho phép chuyển đổi qua lại các ứng dụng đang cùng chạy. Không chỉ
có bề mặt được trau chuốt, phần lõi hệ thống có các cải tiến tương thích với phần cứng
như hỗ trợ chip xử lý (CPU) đa lõi, tăng tốc phần cứng...
Android 3.0 đặt nền móng quan trọng cho thế hệ Android 4.x hợp nhất, khắc phục
sự phân mảng của Android (có các phiên bản riêng dành cho smartphone và tablet).
GVHD : Th.s Đoàn Hòa Minh
SVTH: Hồ Minh Triết
2.2.11 Android 4.2: vẫn là Jelly Bean
Ra mắt: tháng 11-2012.
Chỉ sau gần năm tháng ra mắt Android 4.1, Google tiếp tục bồi thêm sức nặng
cho Android với phiên bản 4.2 và vẫn mang tên mã Jelly Bean.
Android 4.2 tiếp tục mang đến những cải tiến hấp dẫn cho ứng dụng chụp ảnh
(Camera) như HDR, Photo Sphere, hiệu ứng ảnh, Google Now, đưa tính năng lướt chọn
từ rất hay trong bàn phím ảo. Chức năng "bom tấn" hỗ trợ nhiều tài khoản người dùng
(multi-user profile) lần đầu tiên được áp dụng trong Android 4.2 nhưng chỉ có người
dùng
máy
tính
bảng
thừa
hưởng
chức
năng
này.(Trích
từ
/>
GVHD : Th.s Đoàn Hòa Minh
SVTH: Hồ Minh Triết
Trang 14
Luận văn tốt nghiệp : Ứng dụng tô màu cho bé
Theo số liệu mới nhất từ Google , hiện Android 4.0 Ice Cream Sandwich đang
chiếm 28,6% tổng số thiết bị Android được kích hoạt, còn Android 4.1/4.2 Jelly Bean thì
GVHD : Th.s Đoàn Hòa Minh
SVTH: Hồ Minh Triết
Trang 15
Luận văn tốt nghiệp : Ứng dụng tô màu cho bé
yếu của activity. Quan trọng nhất đó là phải gọi phương thức
setContentView() để định nghĩa cách bố trí giao diện của activity .
onPause(): Phương thức này được gọi khi ta rời khỏi activity. Trong
phương thức này ta nên ghi chép lại một số thay đổi mà vẫn còn tiếp tục
phục vụ cho phiên làm việc của người dùng.
Bắt đầu một một activity :
Để bắt đầu một activity ta gọi phương thức startActivity() thông qua một
Intent. Ví dụ : muốn bắt đầu một activity khác tên là AnotherActivity ta
làm như sau :
Intent intent = new Intent(this,
AnotherActivity.class);
startActivity(intent);
Tắt một activity :
Bạn có thể tắt một activity bằng cách gọi phương thức finish()
Vòng đời của một activity
Một activity có các trạng thái chính: Active, Running, Paused, Stopped.
Khi chuyển giữa các trạng thái, ứng dụng sẽ gọi các phương thức ứng với các
bước chuyển: void onCreate(Bundle savedInstanceState), void onStart(), void
onRestart(), void onResume(), void onPause(), void onStop(), void onDestroy().
- Được gọi trước khi một Activity hiển thị (Visible) với người dùng.
- Theo sau bởi onResume() nếu Activity đến trạng thái foreground hoặc onStop()
nếu nó trở nên ẩn.
Phương thức onRestart():
- Được gọi sau khi Activity đã được dừng, chỉ một khoảng đang khởi động lần nữa
(stared again).
- Thường theo sau bởi onStart().
Phương thức onResume():
- Được gọi trước khi Activity bắt đầu tương tác với người dùng.
- Tại thời điểm này Activity ở trên đỉnh của stack Activity.
- Thường theo sau bởi onPause().
Phương thức onPause():
- Được gọi khi hệ thống đang resuming Activity khác.
- Phương thức này là điển hình việc giữ lại không đổi dữ liệu.
- Nó nên được diễn ra một cách nhanh chóng bởi vì Activity kế tiếp sẽ không được
resumed ngay cho đến khi nó trở lại.
- Theo sau bởi onResume() nếu Activity trở về từ ở trước hoặc bởi onStop() nếu nó
trở nên visible với người dùng.
- Trạng thái của Activity có thể bị giết bởi hệ thống.
Phương thức onStop():
- Được gọi khi Activity không thuộc tầm nhìn của người dùng.
- Nó có thể diễn ra bởi vì nó đang bị hủy hoặc bởi vì Activity khác vừa được
resumed và bao phủ nó.
- Được theo sau bởi onRestart() nếu Activity đang tương tác với người dùng hoặc
onDestroy() nếu Activity đang bị hủy bỏ.
- Trạng thái của Activity có thể bị giết bởi hệ thống.
GVHD : Th.s Đoàn Hòa Minh
SVTH: Hồ Minh Triết
package="buoi1.bai3"
android:versionCode="1"
nhạc ở chế độ ngầm khi người dùng chuyển ra khỏi trình nghe nhạc. Mỗi Service đều được
mở rộng từ lớp cơ sở là Service trong gói android.app. Có thể kết nối tới hoặc kích hoạt một
Service thông qua interface mà Service đưa ra.
Một Service có thể được sử dụng theo 2 cách:
Nó có thể được bắt đầu và được cho phép hoạt động cho đến khi một người nào đó
dừng nó lại hoặc nó tự ngắt. Ở chế độ này, nó được bắt đầu bằng cách gọi
Context.startService() và dừng bằng lệnh Context.stopService(). Nó có thể tự ngắt
bằng lệnh Service.stopSelf() hoặc Service.stopSelfResult(). Chỉ cần một lệnh
stopService() để ngừng Service lại cho dù lệnh startService() được gọi ra bao nhiêu lần
Service có thể được vận hành theo như đã được lập trình việc sử dụng một Interface
mà nó định nghĩa. Các người dùng thiết lập một đường truyền tới đối tượng Service và
sử dụng đường kết nói đó để thâm nhập vào Service. Kết nối này được thiết lập bằng
cách gọi lệnh Context.bindService() và được đóng lại bằng cách gọi lệnh
Context.unbindService(). Nhiều người dùng có thể kết nối tới cùng một thiết bị. Nếu
Service vẫn chưa được khởi chạy, lệnh bindService() có thể tùy ý khởi chạy nó. Hai
chế độ này thì không tách biệt toàn bộ. Bạn có thể kết nối với một Service mà nó đã
được bắt đầu với lệnh startService(). Ví dụ, một Service nghe nhạc ở chế độ nền có thể
được bắt đầu bằng cách gọi lệnh startService() cùng với một đối tượng Intent mà định
dạng được âm nhạc để chơi. Chỉ sau đó, có thể là khi người sử dụng muốn kiểm soát
trình chơi nhạc hoặc biết thêm thông tin về bài hát hiện tại đang chơi, thì sẽ có một
Activity tạo lập một đường truyền tới Service bằng cách gọi bindService(). Trong
trường hợp như thế này, stopService() sẽ không thực sự ngừng Service cho đến khi liên
kết cuối cùng được đóng lại.
Giống như một Activity, một Service cũng có các phương thức chu kỳ thời gian mà bạn có
thể cài đặt để kiểm soát những sự thay đổi trong trạng thái của nó. Những những phương thức
GVHD : Th.s Đoàn Hòa Minh
SVTH: Hồ Minh Triết
Luận văn tốt nghiệp : Ứng dụng tô màu cho bé
Hình 2 Vòng đời của Service
Service cũng cần phải được khai báo trong thẻ <application> của AndroidManifest.xml
mới có thể sử dụng.
<service android:name="ViduService" />
2.3.3 CONTENT PROVIDER
Một Content Provider cung cấp một tập chi tiết dữ liệu ứng dụng đến các ứng dụng
khác. Thường được sử dụng khi chúng ta muốn tạo cơ sở dữ liệu dưới dạng public (các ứng
dụng khác có thể truy xuất ). Là kho dữ liệu chia sẻ, Content Provider được sử dụng để quản
lý và chia sẻ dữ liệu giữa các ứng dụng. Dữ liệu thường được lưu trữ ở file hệ thống, hoặc
trong một SQLite database. Ví dụ: danh bạ, call log, cấu hình cài đặt...trên điện thoại là dữ
liệu dưới dạng Content Provider.
Content Provider hiện thực một tập phương thức chuẩn mà các ứng dụng khác có thể
truy xuất và lưu trữ dữ liệu của loại nó điều khiển. Tuy nhiên, những ứng dụng không thể gọi
các phương thức trực tiếp. Hơn thế chúng dùng lớp Content Resolver và gọi những phương
GVHD : Th.s Đoàn Hòa Minh
SVTH: Hồ Minh Triết
Trang 22
Luận văn tốt nghiệp : Ứng dụng tô màu cho bé
thức đó. Một Content Resolver có thể giao tiếp đến nhiều content provider; nó cộng tác với
các provider để quản lý bất kỳ giao tiếp bên trong liên quan. Một Content Provider tạo ra
một tập các dữ liệu cụ thể nào đó của ứng dụng cung cấp cho các ứng dụng khác. Các lớp
Content Provider thừa kế từ cơ sở ContentProvider để cài đặt một số hàm tiêu chuẩn cho
action
Tên (string ) của action mà Intent
sẽ yêu cầu thực hiện
Có thể là action được Android
định nghĩa sẵn(built-in standard
action) hoặc do người lập trình tự
định nghĩa
GVHD : Th.s Đoàn Hòa Minh
Thuộc tính phụ
catagory
Thông tin về nhóm của action
type
Định dạng kiểu dữ liệu
Thường được tự động xác định
SVTH: Hồ Minh Triết
Trang 23
Luận văn tốt nghiệp : Ứng dụng tô màu cho bé
data
Dữ liệu mà Activity được gọi sẽ xử
lý
Định dạng Uri (thông qua hàm
Uri.parse(data))
ACTION_ATTACH_DATA
ACTION_INSERT
ACTION_EDIT
ACTION_DELETE
ACTION_PICK
ACTION_RUN
ACTION_CHOOSER
ACTION_FACTORY_TEST
Built-in Standard Broadcast Actions
ACTION_TIME_TICK
ACTION_PACKAGE_RESTARTED
ACTION_TIME_CHANGED
ACTION_PACKAGE_DATA_CLEARED
ACTION_TIMEZONE_CHANGED
ACTION_UID_REMOVED
Bảng 2 Bảng Action được xây dựng sẵn
data: là dữ liệu sẽ được xử lý trong action, thường được diễn tả là một Uri (Uniform
Resource Identifier).
GVHD : Th.s Đoàn Hòa Minh
SVTH: Hồ Minh Triết
Trang 24