ứng dụng tô màu cho bé

79 569 0
ứng dụng tô màu cho bé

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

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 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 hội thực đề tài nhiệt tình hướng dẫn suốt thời gian làm đề tài Xin cám ơn thầy cô khoa CNTT-TT giảng dạy truyền đạt kiến thức quý báu suốt năm học qua Cám ơn tất bạn bè ủng hộ, giúp đỡ, chia sẻ đóng góp ý 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ẹ người thân gia đình tạo điều kiện, môi trường học tập tốt để hoàn thành đề tài Mặc dù cố gắng mình, nhiên đề tài không tránh khỏi thiếu sót Rất mong quý Thầy Cô thông cảm góp ý để đề tài hoàn thiện ! Cần Thơ, ngày 17 tháng năm 2013 Người viết Hồ Minh Triết GVHD : Th.s Đoàn Hòa Minh SVTH: Hồ Minh Triết Trang Luận văn tốt nghiệp : Ứng dụng tô màu cho bé MỤC LỤC MỤC LỤC DANH MỤC HÌNH DANH MỤC BẢNG KÝ HIỆU VÀ VIẾT TẮT TỪ KHÓA TÓM TẮT ABSTRACT CHƯƠNG I : TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ 1.2 LỊCH SỬ VẤN ĐỀ 1.3 MỤC TIÊU VÀ NHIỆM VỤ 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 2.2.4 Android 1.6: Donut 12 2.2.5 Android 2.0: Eclair 12 2.2.6 Android 2.2: Froyo 13 2.2.7 Android 2.3: Gingerbread 13 2.2.8 Android 3.0: Honeycomb 13 2.2.9 Android 4.0: Ice Cream Sandwich 14 2.2.10 Android 4.1: Jelly Bean 14 2.2.11 Android 4.2: 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 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 BROADCAST RECEIVER 27 2.3.6 NOTIFICATION 28 2.4 THƯ VIỆN HỔ TRỢ LẬP TRÌNH ỨNG DỤNG CỦA ANDROID 28 2.5 LẬP TRÌNH GIAO DIỆN MỨC CAO 29 2.5.1 Tổng quan 29 2.5.2 Bố cục giao diện người dùng 29 2.5.3 LinearLayout 30 2.5.4 FrameLayout 32 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 Canvas 41 2.6.3 Paint 42 2.6.4 Path 42 2.6.5 Phương thức onTouchEvent(MotionEvent event) 43 CHƯƠNG III: NỘI DUNG KẾT QUẢ NGHIÊN CỨU 46 3.1 PHÁT TRIỂN ỨNG DỤNG 46 3.1.1 Sơ đồ chức 46 3.1.2 Xây dựng giao diện 47 3.1.3 Chức chọn nét vẽ, hình dạng muốn vẽ 48 3.1.4 Chức 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 phục hồi 57 3.1.7 chọn Chức 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 Luận văn tốt nghiệp : Ứng dụng tô màu cho bé 3.1.8 Chức chọn hình từ máy 63 3.1.9 Chức lưu hình ảnh 65 3.1.10 Chức chia sẻ 65 3.1.11 Chức tạo 67 3.1.12 Chức xóa (Eraser) 67 3.1.13 Chức tô màu 67 3.1.14 Chức tải hình lên vẽ 72 KẾT LUẬN VÀ ĐỀ NGHỊ 75 I KẾT QUẢ ĐẠT ĐƯỢC 75 II CÁC MẶT CHƯA ĐẠT ĐƯỢC VÀ HẠN CHẾ 75 III 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 Luận văn tốt nghiệp : Ứng dụng tô màu cho bé DANH MỤC HÌNH STT Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình 10 Hình 11 Hình 12 Hình 13 Hình 14 Hình 15 Hình 16 Hình 17 Hình 18 Hình 19 Hình 20 Hình 21 Hình 22 Hình 23 Hình 24 TÊN HÌNH Vòng đời Activity Vòng đời Service Sơ đồ hoạt động Intent Sơ đồ phân cấp bố cục giao diện người dùng Minh họa LinearLayout Minh họa FrameLayout Minh họa Toast Sơ đồ chức Thiết kế giao diện Giao diện sau hoàn thành Dialog chọn nét vẽ Dialog chọn độ lớn nét vẽ Thiết kế giao diện dialog chọn màu Dialog chọn màu Gallery chọn hình kèm theo ứng dụng Chức chia sẻ Hình ảnh minh họa fillCircle() fillCircle_gradient() Dialog chọn hình tải lên Hình từ ứng dụng Hình từ ứng dụng Hình từ ứng dụng Hình từ ứng dụng Hình từ ứng dụng Hình từ ứng dụng DANH MỤC BẢNG STT Bảng Bảng TÊN BẢNG Bảng thuộc tính Intent Bảng Action xây dựng sẵn GVHD : Th.s Đoàn Hòa Minh SVTH: Hồ Minh Triết Trang 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 KÍ HIỆU GVHD SVTH CNTT-TT Smartphone API Google Play DIỄN GIẢI Giáo viên hướng dẫn Sinh viên thực Công nghệ thông tin truyền thông Điện thoại thông minh Application Programming Interface Giao diện lập trình Kho ứng dụng giành cho thiết bị dùng hệ điều hành Android GHI CHÚ TỪ KHÓA STT 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 Luận văn tốt nghiệp : Ứng dụng tô màu cho bé TÓM TẮT Trong năm gầy đây, với phát triển khoa học công nghệ, ngày có nhiều hệ điều hành cho thiết bị di động phát triển Trong số Android chiếm lĩnh thị trường ngày phát triển mạnh mẽ Trong xu hướng phát triển đó, nghiên cứu phát triển ứng dụng hệ điều Android thu hút nhiều sinh viên hứa hẹn mang lại nhiều hội việc làm tương lai Vì thế, lựa chọn đề tài “Ứng dụng tô màu cho bé” nhằm mục đích nghiên cứu hệ điều hành Android nhằm phát triển ứng dụng dự đoán phát triển mạnh mẽ năm tới Ứng dụng tô màu cho bé hổ trợ chức sau :        Vẽ, tô màu lên hình người dùng tự sáng tạo Vẽ, tô màu lên hình có sẵn kèm theo ứng dụng Vẽ, tô màu lên hình tải lên từ thẻ nhớ Thay đổi nét vẽ, độ lớn màu sắc nét vẽ Tải hình kèm ứng dụng lên hình vẽ Phát âm tiếng anh, dịch nghĩa hình kèm theo ứng dụng Lưu trữ, chia sẻ hình vẽ Với phương pháp nghiên cứu lý thuyết thực hành máy ảo, sau thời gian phát triển thành công ứng dụng tô màu cho bé Ứng dụng đáp ứng việc vẽ, tô màu bé nhằm phát huy tính sáng tạo trí tuệ bé GVHD : Th.s Đoàn Hòa Minh SVTH: Hồ Minh Triết Trang 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 successfully developed the coloring application for the kids The application has met the basic drawing and coloring capacity of the kids so that they can improve their creativity and intelligence GVHD : Th.s Đoàn Hòa Minh SVTH: Hồ Minh Triết Trang Luận văn tốt nghiệp : Ứng dụng tô màu cho bé CHƯƠNG I : TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ Ngày nay, khoa học công nghệ phát triển mạnh mẽ dẫn đến giá smartphone giảm dần tạo điều kiện cho nhiều người dùng tiếp cận smartphone dần thay sản phẩm điện thoại phổ thông Trong số smartphone đó, điện thoại sử dụng hệ điều hành Android chiếm lĩnh thị trường Các ứng dụng Android ngày phong phú hấp dẫn người dùng, góp phần làm cho sống thêm tiện ích động Trong ứng dụng đó, ứng dụng tô, vẽ hình điện thoại ngày phát triển thu hút nhiều người dùng, đặc biệt trẻ nhỏ Mỗi đứa trẻ sinh lớn lên, trải qua trình tìm tòi học hỏi Trong năm tháng đầu đời bé bắt đầu tiếp cận sống qua âm hình ảnh Qua năm tháng bé dần lớn lên đến lúc bé biết vẽ, biết viết Đó thời điểm “Ứng dụng tô màu cho bé” phát huy tác dụng Qua ứng dụng tô màu,bé nhận dạng màu sắc, hình dạng Trong trình tô vẽ, bé phát huy tính sáng tạo việc lựa chọn màu sắc, kết hợp cách hình dạng có sẵn để tạo nên vẽ độc đáo Bên cạnh ứng dụng giúp cho bố, mẹ bé giảm thời gian xếp vật dụng bé tô màu theo cách truyền thống Với mong muốn đó, định thực đề tài “Ứng dụng tô màu cho bé” nhằm mục đích góp phần làm phong phú cho ứng dụng tô, vẽ điện thoại Android, đồng thời hội nghiên cứu phát triển ứng dụng di động cho Android, lĩnh vực hứa hẹn phát triển mạnh năm tới LỊCH SỬ VẤN ĐỀ Hiện Google Play có nhiều ứng dụng tô, vẽ điện thoại Tuy nhiên, ứng dụng có điểm mạnh điểm yếu riêng Đa số ứng dụng chưa kết hợp tô vẽ Vì đề tài thực nhằm khắc phục khuyết điểm 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ả lập trình khả phát triển ứng dụng tảng Android Nâng cao khả báo cáo, thuyết trình khả tự nghiên cứu Phát triển phần mềm hữu ích điện thoại 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 Luận văn tốt nghiệp : Ứng dụng tô màu cho bé bmp = BitmapFactory.decodeStream( getContentResolver().openInputStream(imageFi leUri), null,null); alteredBitmap = Bitmap.createScaledBitmap(bmp, (int)dw, (int)dh, true); mview = new MyView(this,alteredBitmap); display.removeAllViews(); display.addView(mview); } catch (FileNotFoundException e) { Log.v("ERROR",e.toString()); } } } Trong phương thức trên, kết trả truyền qua đối tượng intent Ta lấy liệu cách gọi hàm getData(), kết trả đường dẫn đến liệu (hình ta chọn) ta cần lưu đường dẫn vào đối tượng thuộc lớp Uri: Uri imageFileUri = intent.getData(); Sau đó, ta cần giải mã hình ảnh lưu trữ đường dẫn vào đối tượng thuộc lớp Bitmap phương thức decodeStream lớp BitmapFactory bmp = BitmapFactory.decodeStream( getContentResolver().openInputStream(imageFileUri), null,null); Điều chỉnh kích thước createScaleBitmap() alteredBitmap = (int)dw, (int)dh, true); hình ảnh phương thức Bitmap.createScaledBitmap(bmp, Khởi tạo lại đối tượng lớp MyView với tham số truyền vào hình ảnh chọn mview = new MyView(this,alteredBitmap); Hiển thị lên hình : display.addView(mview); Ta cần nhớ khai báo thêm quyền truy cập thẻ nhớ tập tin AndroidManifest.xml GVHD : Th.s Đoàn Hòa Minh SVTH: Hồ Minh Triết Trang 64 Luận văn tốt nghiệp : Ứng dụng tô màu cho bé Chức lưu hình ảnh Khi người dùng nhấn vào nút tương ứng với chức này, người dùng vẽ lưu vào tập tin ảnh có dạng jpeg với tên theo định dạng “yyyyMMdd_HHmmss”(nămthángngày_giờphút giây) Để lưu hình ảnh trước tiên ta phải tạo thư mục để lưu trữ thẻ nhớ : 3.1.9 File direct = new File(Environment.getExternalStorageDirectory()+ "/BabyPaint"); if(!direct.exists()) { direct.mkdir(); } Sau tạo tập tin cần lưu lại: String filename = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date(System.currentTimeMillis())); File file = new File(path+"/"+filename+".jpeg Kế tiếp luồng xuất vào tập tin vừa tạo: OutputStream fOut; fOut = new FileOutputStream(file); Ghi liệu vào luồng xuất : bitsave.compress(Bitmap.CompressFormat.JPEG, 100, fOut); Để lưu tập tin vào thẻ nhớ ta cần có quyền ghi vào thẻ Vì phải khai báo quyền tập tin AndroidManifest.xml 3.1.10 Chức chia sẻ Khi bấm vào nút tương ứng với chức này, hệ thống thị lên danh sách ứng dụng cài máy chia sẻ hình ảnh Trước chia sẻ , ta lưu lại tập tin thẻ nhớ Ta cần xây dựng phương thức tương ứng với chức file BabyPaintActivity public void Share(View v) GVHD : Th.s Đoàn Hòa Minh SVTH: Hồ Minh Triết Trang 65 Luận văn tốt nghiệp : Ứng dụng tô màu cho bé { // công việc lưu lại hình ảnh thực phần //Tạo intent để khởi động activity send Intent sharingIntent = new Intent(Intent.ACTION_SEND); // Đính kèm liệu vào để truyền qua activity sharingIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file)); // khởi động activity để chia sẻ hình ảnh vẽ startActivity(Intent.createChooser(sharingIntent, "Share image via")); } Gọi lại phương thức nhấn vào nút chức tương ứng : Để chia sẻ hình ảnh qua ứng dụng , ta cần có quyền truy cập internet Vì tập tin AndroidManifest.xml ta cần khai báo quyền Khi nhấn nút chức share hình hiển thị sau: Hình 16: Chức chia sẻ GVHD : Th.s Đoàn Hòa Minh SVTH: Hồ Minh Triết Trang 66 Luận văn tốt nghiệp : Ứng dụng tô màu cho bé 3.1.11 Chức tạo Khi bấm vào nút tương ứng với chức này, toàn ta vẽ trước xóa hết, trước xóa ứng dụng nhắc ta có lưu lại vẽ hay không Để thực chức này, đơn giản ta cần tạo lại đối tượng mview lớp MyView cho hiển thị lại hình 3.1.12 Chức xóa (Eraser) Chức cho phép người dùng xóa nét vẽ thừa Chức đơn giản gán lại màu cho nét vẽ màu trắng public void Eraser(View v) { mview.setMyColor(Color.WHITE); } 3.1.13 Chức tô màu  Tô màu vào vùng giới hạn màu Trong ứng dụng ta tô, vẽ lên bitmap, bitmap tập hợp điểm ảnh (pixel) Để tô màu lên vùng giới hạn màu Ta tô màu cho điểm ảnh , giải thuật ta thực sau: - - - Khi chạm tay xuống hình, ta lấy giá trị màu điểm vừa chạm, so sánh với màu ta cần tô, màu giống ta không thực hết Ngược lại ta thực sau: Trong hàng đợi không rỗng, lấy điểm hàng đợi Tạo điểm có tọa độ (x,y) với tọa độ điểm vừa lấy Giảm tọa độ x điểm xuống màu điểm khác với màu điểm chạm vào hình Tăng tọa độ x lên, màu điểm (x,y) giống màu điểm tay ta chạm vào, ta thay màu điểm màu muốn tô Cứ tăng tọa độ x lên đơn vị , ta xét điểm có tọa (x,y-1) (x,y+1) (điểm điểm so với điểm xét) màu hai điểm giống với màu điểm ta chạm tay vào đưa hai điểm vào hàng đợi Thực hàng đợi không điểm Để thực chức trên, ta xây dựng lớp mới, lớp có phương thức thực giải thuật Trong ứng dụng ta xây dựng lớp MyFill, phương thức tô màu ta thực phương thức fill() Như phân tích GVHD : Th.s Đoàn Hòa Minh SVTH: Hồ Minh Triết Trang 67 Luận văn tốt nghiệp : Ứng dụng tô màu cho bé ta cần truyền vào phương thức bitmap, tọa độ điểm ta chạm tay vào hình, màu điểm tay ta chạm vào, màu ta cần tô : public void fill(Bitmap image,Point node,int targetColor,int replacementColor) { int width = image.getWidth(); int height = image.getHeight(); int target = targetColor; int replacement = replacementColor; // kiểm tra màu điểm chạm vào có giống màu cần tô hay không if (target != replacement) { // khác tạo hàng đợi Queue queue = new LinkedList(); //thêm điểm vào hàng đợi queue.add(new Point(node.x,node.y)); //trong hàng đợi khác rỗng { // lấy điểm từ hàng đợi int x = node.x; int y = node.y; // giảm tọa độ x đến điểm (x,y) có màu khác với màu điểm chạm tay vào hình while (x > && image.getPixel(x - 1, y) == target) { x ; } while (x < width && image.getPixel(x, y) == target) { // thay đổi màu điểm (x,y) image.setPixel(x, y, replacement); // thêm vào hàng đợi thỏa điều kiện if(y>0 && x%3==0 && image.getPixel(x, y1)== target) { queue.add(new Point(x,y-1)); } if(y < height-1 && x%3==0 && image.getPixel(x, y+1) == target) { queue.add(new Point(x,y+1)); } x++; } } while ((node = queue.poll()) != null); GVHD : Th.s Đoàn Hòa Minh SVTH: Hồ Minh Triết Trang 68 Luận văn tốt nghiệp : Ứng dụng tô màu cho bé } Việc thực việc tô màu thực ta chạm tay vào hình, ta gọi phương thức phương thức touch_start() lớp MyView.Vì có nhiều chức tô màu khác nên ta cần khai báo biến để nhận biết chức public class MyView extends View { int fill_number=1;//biến để lựa chọn chức tô màu // Xây dựng phương thức để thay đổi giá trị public void setFillNumber(int n) { fill_number = n; } private void touch_start(float x, float y) { MyFill f = new MyFill(); switch (fill_number) { case 1: f.fill(bitmap, p, bitmap.getPixel((int) x, (int) y),paint.getColor()); // … lựa chọn tô màu khác break; } } Khi nhấn vào nút chức để lựa chọn cách tô màu Màn hình hiển thị dialog, có ImageButton tương ứng với cách tô màu, để lựa chọn ta nhấn vào nút này.Vì ta xây dựng lớp FillDialog để thực chức Tương tự chức có hiển thị dialog Trong lớp FillDialog, ta xây dựng phương thức để hiển thị lựa chọn cách tô màu Bố cục nút dialog định nghĩa file fill_dialog.xml Phương thức để hiển thị chọn cách vẽ lớp FillDialog : public void chooseFill(final MyView mv) { final Dialog da = new Dialog(con); da.setContentView(R.layout.fill_dilog); da.setTitle("Type of fill"); OnClickListener listen = new OnClickListener() { GVHD : Th.s Đoàn Hòa Minh SVTH: Hồ Minh Triết Trang 69 Luận văn tốt nghiệp : Ứng dụng tô màu cho bé @Override public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) { case R.id.bt_fill_all: mv.setFillNumber(1);// xác định cách thức tô màu da.dismiss(); break; // lựa chọn tô màu khác } } }; Trong lớp BabyPaintActivity, ta tạo đối tượng thuộc lớp FillDialog để gọi lại phương thức chooseFill() Ta xây dựng phương thức ứng với kiện nhấn vào nút chức để hiển thị dialog lên hình : public void Fill(View v) { da_fill.chooseFill(mview); }  Tô màu vào vùng có bán kính định trước Chức tô màu vào vòng tròn có bán kính định trước, bán kính thay đổi ta thay đổi độ lớn nét vẽ Với chức này, màu tô vào chuyển từ đậm dần đến nhạt dần vùng bán kính định trước (thực tế điểm ảnh tô màu thưa dần xa tâm) Để làm điều này, trước tiên ta cần định nghĩa hàm trả khoảng cách điểm : public double distance(Point a,Point b) { GVHD : Th.s Đoàn Hòa Minh SVTH: Hồ Minh Triết Trang 70 Luận văn tốt nghiệp : Ứng dụng tô màu cho bé double result; result = Math.sqrt((b.x-a.x)*(b.x-a.x)+(b.ya.y)*(b.y-a.y)); return result; } Sau ta xây dựng phương thức tương ứng với cách tô :  fillCircle(Bitmap bit,Point p,int radius, int color) : phương thức tô màu vào vòng tròn có đường kính radius, điểm ảnh gần tâm tô liên tiếp nhau, xa tâm điểm ảnh tô thưa dần  fillCircle_gradient(Bitmap bit,Point p,int radius, int color): phương thức tô màu vào vòng tròn có đường kính radius, điểm ảnh tô thưa dần từ tâm fillCircle() fillCircle_gradient() Hình 17 : Hình ảnh minh họa fillCirlle() fillCircle_gradient() Cơ sở để tạo vùng tô màu ta tô chồng nhiều lớp lên nhau, trước tiên ta tô cho vòng tròn có bán kính lớn nhất, sau tô cho vòng tròn có bán kính nhỏ dần Để thực vẽ vòng tròn trên, ta chạy vòng lặp lòng để duyệt qua vùng ảnh hình vuông có kích thước với đường kính đường tròn, sau sử dụng phương thức xác định khoảng cách định nghĩa bên để giới hạn lại điểm vòng tròn tô màu cho chúng Để gọi phương thức ta làm tương tự tô màu vào vùng giới hạn màu Ta cần lưu ý việc truyền tham số đường kính để thay đổi kích thước theo độ lớn nét vẽ: f.fillCircle(bitmap, p, (int)paint.getStrokeWidth()+(int)bk ,paint.getColor()); GVHD : Th.s Đoàn Hòa Minh SVTH: Hồ Minh Triết Trang 71 Luận văn tốt nghiệp : Ứng dụng tô màu cho bé Chức tải hình lên vẽ Để làm cho vẽ thêm sinh động ta dùng chức để tải lên vẽ hình ảnh có sẵn Khi nhấn vào nút tương ứng với chức hình hiển thị lên dialog , dialog có nhiều hình để ta lựa chọn, hình ImageButton Để thay đổi kích thước hình tải lên lớn hơn, trước chọn hình ta nhớ điều chỉnh seekbar bên Dialog xây dựng lớp PicDialog Cũng chức trước , lớp ta xây dựng phương thức để hiển thị dialog thực lựa chọn hình Bố cục nút dialog định nghĩa file pic_dialog.xml Việc tải hình lên thực ta chạm tay vào hình việc tải hình lên thực phương thức touch_start() lớp MyView Vì có nhiều hình nên ta cần khai báo biến để xác định hình chọn, phương thức để thay đổi giá trị 3.1.14 public class MyView extends View { int pic_number;//mỗi ảnh ứng với giá trị biến public void setPicNumber(int n) { pic_number = n; // thay đổi giá trị để vẽ ảnh tương ứng } } Trong phương thức touch_strart() lớp MyView: private void touch_start(float x, float y) { switch (pic_number) { case 1: //giải mã hình ảnh vào đối tượng bitmap brush_bit = BitmapFactory.decodeResource(getResources(), R.drawable.pic_flower); break; case 2: brush_bit = BitmapFactory.decodeResource(getResources(), R.drawable.pic_heart); break; // … lựa chọn khác } // điều chỉnh kích thước brush_bit alter = Bitmap.createScaledBitmap(brush_bit, 70+pic_scale, 70+pic_scale, true); GVHD : Th.s Đoàn Hòa Minh SVTH: Hồ Minh Triết Trang 72 Luận văn tốt nghiệp : Ứng dụng tô màu cho bé //thuc hien ve len bitmap mcanvas.drawBitmap(alter, x-((70+pic_scale)/2), y((70+pic_scale)/2), null); } Trong lớp PicDialog, xây dựng phương thức choosePic() để hiển thị dialog lựa chọn hình ảnh : public class PicDialog { //… khai báo cần thiết public void choosePic(final MyView mv) { final Dialog da = new Dialog(context); da.setContentView(R.layout.pic_dialog); da.setTitle("Picture"); … OnClickListener listen = new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) { case R.id.bt_flower: mv.setPicNumber(1);//ứng với giá trị hình vẽ khác da.dismiss(); break; case R.id.bt_heart: mv.setPicNumber(2); da.dismiss(); break; // … lựa chọn lại } }; //… da.show(); } } Trong lớp BabyPaintActivity, ta xây dựng phương thức để thực hiển thị dialog lên hình nhấn vào nút chức tương ứng: public void Picture(View v) GVHD : Th.s Đoàn Hòa Minh SVTH: Hồ Minh Triết Trang 73 Luận văn tốt nghiệp : Ứng dụng tô màu cho bé { da_pic.choosePic(mview); } Gọi lại phương thức thông qua thuộc tính android:onClick nút tương ứng file activity_baby_paint_main.xml Khi chọn chức hình hiển thị sau: Hình 18 : Dialog chọn hình tải lên GVHD : Th.s Đoàn Hòa Minh SVTH: Hồ Minh Triết Trang 74 Luận văn tốt nghiệp : Ứng dụng tô màu cho bé KẾT LUẬN VÀ ĐỀ NGHỊ I II KẾT QUẢ ĐẠT ĐƯỢC Sau thời gian nghiên cứu đạt kết sau:  Biết thành phần cách để phát triển ứng dụng Android Nâng cao khả lập trình  Hiểu biết thêm kiến thức lập trình giao diện mức cao mức thấp Android  Nâng cao khả tự nghiên cứu học hỏi  Phát triển thành công Ứng dụng tô màu cho bé: Ứng dụng thực chức sau : - Vẽ, tô màu lên hình người dùng tự sáng tạo - Vẽ, tô màu lên hình có sẵn kèm theo ứng dụng - Vẽ, tô màu lên hình tải lên từ thẻ nhớ - Thay đổi nét vẽ, độ lớn màu sắc nét vẽ - Tải hình kèm ứng dụng lên hình vẽ - Phát âm tiếng anh, dịch nghĩa hình kèm theo ứng dụng - Lưu trữ, chia sẻ hình vẽ CÁC MẶT CHƯA ĐẠT ĐƯỢC VÀ HẠN CHẾ Ứng dụng số hạn chế sau : - III Các nét vẽ chưa phong phú đa dạng Chưa tô màu vào vùng giới hạn với màu chuyển từ đậm sang nhạt dần Tốc độ tô màu vào vùng giới hạn lớn chậm Chưa cho phép người dùng nhập chữ lên vẽ HƯỚNG PHÁT TRIỂN - Trong thời gian tới tiếp tục nghiên cứu API Android hổ trợ cho việc phát triển ứng dụng để khắc phục phần chưa đạt - Nghiên cứu phát triển thêm chức cho ứng dụng : phóng to, thu nhỏ hình vẽ, di chuyển đối tượng vẽ hình - Đề xuất tích hợp ứng dụng vào các ứng dụng chat, nhắn tin điện thoại Android GVHD : Th.s Đoàn Hòa Minh SVTH: Hồ Minh Triết Trang 75 Luận văn tốt nghiệp : Ứng dụng tô màu cho bé - Chia sẻ ứng dụng để người dùng thử , nhận phản hồi từ người dùng để khắc phục khuyết điểm phát triển ứng dụng GVHD : Th.s Đoàn Hòa Minh SVTH: Hồ Minh Triết Trang 76 Luận văn tốt nghiệp : Ứng dụng tô màu cho bé TÀI LIỆU THAM KHẢO [1] Đoàn Hòa Minh Giáo trình Lập trình thiết bị di động [2] Shawn Van Every Pro Android Media Apress 2009 [3] Jason Morris Android User Interface Development [4] Lê Minh Quân Luận văn Tìm hiểu tảng android xây dựng thực hành lập trình cho thiết bị di dộng với tảng android 2012 [5] http://stackoverflow.com/ [6] http://nhipsongso.tuoitre.vn/ [7] http://about-android.blogspot.com/2010/07/2d-graphics-with-effects_11.html [8] http://developer.android.com/develop/index.html GVHD : Th.s Đoàn Hòa Minh SVTH: Hồ Minh Triết Trang 77 Luận văn tốt nghiệp : Ứng dụng tô màu cho bé MỘT SỐ HÌNH ẢNH TỪ ỨNG DỤNG Hình 19: Hình từ ứng dụng Hình 22: Hình từ ứng dụng GVHD : Th.s Đoàn Hòa Minh Hình 20: Hình từ ứng dụng Hình 23: Hình từ ứng dụng Hình 21: Hình từ ứng dụng Hình 24: Hình từ ứng dụng SVTH: Hồ Minh Triết Trang 78 [...]...Luận văn tốt nghiệp : Ứng dụng tô màu cho bé Nhiệm vụ : - Tìm hiểu cách thức vẽ trên màn hình điện thoại sử dụng hệ điều hành Android - Xây dựng ứng dụng tô màu cho bé 1.4 PHẠM VI ĐỀ TÀI Ứng dụng cần đạt được các yêu cầu sau :             Tạo mới một bức vẽ Thay đổi màu sắc nét vẽ Thay đổi độ lớn nét vẽ Thay đổi nét vẽ Vẽ được những hình... từ thẻ nhớ Tải hình để tô, vẽ kèm theo với ứng dụng Tô màu vào vùng giới hạn, tô màu theo bán kính định sẵn Tải một số hình ảnh lên màn hình 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... 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... AndroidManifest.xml mới có thể sử dụng 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... 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 phép ứng dụng khác nhận và lưu trữ dữ liệu Trong một ứng dụng thì để có thể sử dụng, Content Provider cần phải được khai báo trong thẻ của tập tin AndroidManifest.xml... khiển bản đồ sẵn trong Android từ ứng dụng được xây dựng Bao gồm cả lớp MapView cũng như Overlay và MapController để tương tác với bản đồ bên trong ứng dụng  android.app: Một gói thư viện bậc cao, cung cấp truy cập đến dữ liệu của ứng dụng Gói ứng dụng cũng bao gồm lớp Activity và Service là thành phần cơ bản của mọi ứng dụng Android  android.provider : Để tạo thuận lợi cho người phát triển truy cập... sử dụng những thông tin trong Intent này, kiểm tra đối chiếu với Intent Filter của các component các ứng dụng, sau đó quyết định khởi chạy ứng dụng nào thích hợp nhất để xử lý Intent bắt được Nếu có hai hay nhiều hơn ứng dụng thích hợp, người dùng sẽ được lựa chọn ứng dụng mình muốn Mặc định mỗi ứng dụng đều đã khai báo Intent Filter, nếu muốn bổ sung thêm Intent Filter khác thì cũng phải khai báo thêm... 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... 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() Biểu đồ miêu tả: GVHD : Th.s Đoàn Hòa Minh SVTH: Hồ Minh Triết Trang 16 Luận văn tốt nghiệp : Ứng dụng tô màu cho bé Hình 1 Vòng đời của Activity Các phương thức... bản Android Tuy chưa chính thức áp dụng nhưng Android 1.1 đã có tên Petit Four Không GVHD : Th.s Đoàn Hòa Minh SVTH: Hồ Minh Triết 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

Ngày đăng: 10/11/2015, 17:50

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan