Việt Nam là thị trường di động vô cùng tiềm năng. Trong một nghiên cứu mới đây, tỷ lệ sử dụng smartphone ở Việt Nam đã tăng gần gấp đôi trong vòng một năm, từ 20% lên 36%. Đa phần các ứng dụng trên di động đều là các ứng dụng, trò chơi để giúp giải quyết nhu cầu cần thiết của người dùng. Các loại ứng dụng chỉnh sửa hình ảnh là một trong những ứng dụng phổ biến trên nền tảng di động. Kế thừa từ những tính năng cơ bản của smartphone như chụp ảnh, tính linh động và sở thích chụp ảnh, chia sẻ hình ảnh lên mạng xã hội của người dùng, nhóm chúng em quyết định chọn đề tài “Xây dựng ứng dụng chế ảnh” để làm đề tài cho môn học này. Chúng em hy vọng sẽ nhận được sự ủng hộ, đóng góp chân thành từ phía thầy cô và các bạn.
LỜI CẢM ƠN Môn học “Lập trình nhúng” môn học quan trọng sinh viên ngành Công Nghệ Thông Tin Đây môn học có tính thực tế cao theo kịp phát triển ngành công nghệ thông tin Lập trình nhúng có mặt hầu hết lĩnh vực sống, từ công nghệ thông tin, giáo dục, quản lý, tài chính, ứng dụng… giải trí Lập trình ứng dụng Android lĩnh vực “hot” phân hệ lập trình nhúng Người lập trình sử dụng kiến thức lập trình nhúng hiểu biết hệ điều hành tảng di động, cụ thể Android để xây dựng nên ứng dụng dung Để cho chúng em nắm kiến thức tiếp cận thực tế với sản phẩm phần mềm, chúng em nhận giúp đỡ tận tình từ thầy giáo Lê Hoàn giáo viên hướng dẫn chúng em đồ án này, với góp ý số thành viên lớp để đố án chúng em hoàn thành.Nhưng có hạn chế kiến thức kinh ngiệm tìm hiểu thực tế chưa có nên đồ án em nhiều sai sót Chúng em mong nhận bảo, giúp đỡ thầy cô giáo bạn để chúng em hoàn thiện Cuối chúng em xin gửi lời cảm ơn sâu sắc đến thầy hướng dẫn Lê Hoàn giúp chúng em trình làm đồ án vừa qua Chúng em xin chân thành cảm ơn! Hà Nội, ngày tháng năm 2015 NGUYỄN HOÀI SƠN LỜI MỞ ĐẦU Việt Nam thị trường di động vô tiềm Trong nghiên cứu đây, tỷ lệ sử dụng smartphone Việt Nam tăng gần gấp đôi vòng năm, từ 20% lên 36% Đa phần ứng dụng di động ứng dụng, trò chơi để giúp giải nhu cầu cần thiết người dùng Các loại ứng dụng chỉnh sửa hình ảnh ứng dụng phổ biến tảng di động Kế thừa từ tính smartphone chụp ảnh, tính linh động sở thích chụp ảnh, chia sẻ hình ảnh lên mạng xã hội người dùng, nhóm chúng em định chọn đề tài “Xây dựng ứng dụng chế ảnh” để làm đề tài cho môn học Chúng em hy vọng nhận ủng hộ, đóng góp chân thành từ phía thầy cô bạn MỤC LỤC DANH MỤC HÌNH ẢNH CHƯƠNG 1: ANDROID VÀ LẬP TRÌNH ỨNG DỤNG ANDROID 1.1 Giới thiệu hệ điều hành Android 1.1.1 Mở đầu Như biết, có nửa nhân loại sử dụng máy di động để thoại giao tiếp qua mạng không dây Con số tỉ người tăng lên máy di động ngày "thông minh" với nhiều chức dịch vụ hấp dẫn, thị trường máy di động thông minh vượt xa máy vi tính tương lai gần Vì thế, việc lập trình thiết bị di động ngày phổ biến phát triển mạnh mẽ Từ tảng mã nguồn mở, Google cho mắt Android chạy thiết bị di động Android có nhiều công cụ dụng cụ miễn phí để nghiên cứu phát triển phần mềm tảng Chương giúp tìm hiểu sơ Android giới thiệu cho ta biết ứng dụng Android đơn giản tạo 1.1.2 Khái niệm Android Trước hết Android tảng phần mềm dựa mã nguồn mở Linux OS (Kernel 2.6) cho máy di động phần mềm trung gian (middleware) để hỗ trợ ứng dụng mà người sử dụng cần đến Một cách định nghĩa không chuyên môn coi Android tên tảng mở cho thiết bị di động Google (gồm hệ điều hành, middleware số ứng dụng bản) Android đương đầu với số hệ điều hành (viết tắt HDH) dành cho thiết bị di dộng khác hâm nóng thị trường Windows Mobile, Symbian dĩ nhiên OSX (iPhone) Có thể nói cách nôm na Android HDH chạy thiết bị di động, giống Windows, Linux hay Mac chạy máy vi tính 1.1.2.1 Android khác với hệ điều hành chạy thiết bị di động khác Android thu hút ý giới công nghệ khắp toàn cầu đứa Google sử dụng giấy phép mã nguồn mở Đó sản phẩm kết tinh từ ý tưởng Khối Liên minh thiết bị cầm tay mở Google dẫn đầu, gồm 34 thành viên với công ty hàng đầu công nghệ di động toàn cầu Qualcomm, Intel, Motorola, Texas Instruments LG Electronics, nhà mạng T-Mobile, Sprint Nextel, NTT DoCoMo China Mobile Các nhà phát triển sử dụng miễn phí Kit Android Software Development để xây dựng ứng dụng 1.1.2.2 Đặc tính mở Android Android xây dựng phép nhà phát triển để tạo ứng dụng di động hấp dẫn, tận dụng tất tính điện thoại cung cấp Nó xây dựng để thực mở Ví dụ, ứng dụng gọi chức lõi điện thoại thực gọi, gửi tin nhắn văn bản, cách sử dụng máy ảnh, cho phép nhà phát triển để tạo nhiều ứng dụng phong phú cho người dùng (điều chưa có Windows Phone7 Microsoft) Android xây dựng mã nguồn mở Linux Kernel Hơn nữa, sử dụng máy ảo tuỳ chỉnh thiết kế để tối ưu hóa nhớ tài nguyên phần cứng môi trường di động Android không phân biệt ứng dụng lõi điện thoại ứng dụng bên thứ ba Tất xây dựng để truy cập khả thiết bị di động cung cấp cho người sử dụng với dải rộng ứng dụng dịch vụ Với thiết bị xây dựng Android, người dùng hoàn toàn thích ứng với điện thoại đến lợi ích họ Với Android, nhà phát triển xây dựng ứng dụng cho phép người dùng xem vị trí bạn bè họ cảnh báo họ có vùng phụ cận cho họ hội để kết nối Android cung cấp truy cập đến loạt thư viện công cụ hữu ích sử dụng để xây dựng ứng dụng phong phú Ví dụ, Android cho phép thiết bị giao tiếp với tạo điều kiện cho đồng đẳng rich-to-peer ứng dụng xã hội Ngoài ra, Android bao gồm tập hợp đầy đủ công cụ xây dựng công phu, với việc cung cấp tảng phát triển, với suất cao nhìn sâu vào ứng dụng 1.1.3 Kiến trúc Android Đôi không cần phải hiểu rõ kiến trúc Android ta viết ứng dụng chạy hệ điều hành Đây điều mà nhà sản xuất muốn họ phát hành SDK kèm với framework họ Và điều có mặt tốt lẫn xấu Framework nằm tầng cao cấp dành cho lập trình viên, giúp họ tạo ứng dụng phổ biến khó dung để tạo ứng dụng sâu vào hệ thống hệ điều hành Tuy đề tài nhóm dùng framework cung cấp sẵn để viết ứng dụng nên tìm hiểu cấu trúc android để có nhìn toàn diện hệ điều hành 1.1.3.1 Android Platform Bao gồm HDH Android đầy đủ tính năng, ứng dụng tầng trung gian để developer mở rộng, tùy chỉnh thêm vào component họ Có tầng HDH Android: Application Framework, Android Runtime, Native Libraries, Linux Kernel Mỗi tầng làm việc nhờ giúp đỡ tầng bên 1.1.3.2 Tầng Linux Kernel Đây nhân HDH Android, xử lý hệ thống phải thông qua tầng Linux Kernel cung cấp trình điều khiển thiết bị phần cứng (driver) như: camera, USB, Wifi, Bluetooth, Display, Power Management Android dựa Linux phiên 2.6 lựa chọn tính cốt lõi bảo mật, quản lý nhớ, quản lý tiến trình, mạng stack trình điều khiển phần cứng Kernel hoạt động lớp trừu tượng phần cứng phần mềm lại hệ thống 1.1.3.3 Native Libraries System C library- có nguồn gốc từ hệ thống thư viện chuẩn C (libc), điều chỉnh thiết bị nhúng Linux Media Libraries - mở rộng từ PacketVideo's OpenCORE;thư viện hỗ trợ playback recording nhiều định dạng video image phổ biến: MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG Surface Manager - quản lý việc hiển thị kết hợp đồ họa 2D 3D LibWebCore - Android dùng lại webkit engine cho việc render trình duyệt mặc định HDH Android browser cho dạng web nhúng (như HTML nhúng) SGL - 2D engine 3D libraries - Thư viện 3D dựa OpenGL ES 1.0 API, có nâng cấp tăng tốc "hardware 3D acceleration" FreeType - render bitmap vector font SQLite - quản lý database ứng dụng 1.1.3.4 Tầng Runtime Mỗi ứng dụng Android chạy proccess riêng Dalvik VM (máy ảo) Dalvik viết để chạy nhiều máy ảo lúc cách hiệu thiết bị Máy ảo Dalvik thực thi file mang định dạng dex (Dalvik Excutable), định dạng định dạng tối ưu hóa để chiếm vùng nhớ vừa đủ xài nhỏ VM chạy class (đã compile trước 1trình biên dịch ngôn ngữ Java), VM chạy class nhờ chương trình DX tool convert class sang định dạng dex 1.1.3.5 Tầng Application Framework Đây tầng mà Google xây dựng cho developer để phát triển ứng dụng họ Android, cách gọi API có sẵn mà Google viết để sử dụng tính phần cứng mà không cần hiểu cấu trúc bên Bằng cách cung cấp tảng phát triển mở, Android cho nhà phát triển khả xây dựng ứng dụng phong phú sáng tạo Nhà phát triển tự tận dụng thiết bị phần cứng, thông tin địa điểm truy cập, dịch vụ chạy nền, thiết lập hệ thống báo thức, thêm thông báo để trạng thái, nhiều, nhiều Tất ứng dụng thường gồm dịch vụ hệ thống sau: View UI dùng để xây dựng layout ứng dụng bao gồm: list view, text field, button, dialog, form Content Providers cho phép ứng dụng truy cập liệu từ ứng dụng khác (như ứng dụng ta lấy thông tin Contacts điện thoại Android), để chia sẻ liệu riêng ứng dụng Resource Manager cung cấp cách thức truy cập đến non-code resources asset, graphic, image, music, video Notification Manager cho phép tất ứng dụng hiển thị thông báo HDH Activity Manager quản lý vòng đời ứng dụng Ở góc nhìn người dùng ta có thêm tầng application (là ứng dụng viết), sau sơ đồ tổng quát: Hình 0.1: Tổng quan kiến trúc Android 1.1.4 Máy ảo Dalvik Một thành phần quan trọng Android máy ảo Dalvik Thay sử dụng máy ảo Java trước Android sử dùng máy ảo riêng thiết kế để bảo đảm đa ứng dụng chạy mượt mà thiết bị di động Máy ảo Dalvik sử dụng lõi Linux để xử lý chức mức thấp bao gồm bảo mật, tiến trình, luồng quản lý vùng nhớ Nó viết ứng dụng C/C++ để chạy trực tiếp lên lõi Linux bên Giữa phần cứng dịch vụ hệ thống quản lý máy ảo Dalvik, thành phần Bằng cách sử dụng máy ảo để chạy ứng dụng, nhà phát triển hoàn toàn bận tâm phần cứng bên Khi máy ảo chạy tạo tập tin có đuôi dex, tập tin SDK tạo chuyển đổi từ lớp biên dịch ngôn ngữ Java 1.2 Lập trình cho thiết bị di động chạy Android 1.2.1 Các hiểu biết xây dựng ứng dụng Android 1.2.1.1 Thành phần (component) quan trọng Android project Activity (Android.app.Activity): lớp khởi tạo giao diện ứng dụng nội Android tương tư MIDlet J2ME 10 Service (Android.app.Service): cung cấp dịch vụ liên quan đến client/service Một Service chạy ngầm bên dưới, sau client (Activity) kết nối truy xuất hàm dịch thông qua Interface class Broadcast receiver (Android.content.BroadcastReceiver):Đây ứng dụng chạy ngầm dùng để đọc cập nhật thông tin UI, ví dụ cập nhật thay đổi giờ, pin Content Provider: Cung cấp chức truy vấn liệu ứng dụng Android Intent:Nền tảng để truyền tải thông báo Intent sử dụng để gửi thông báo nhằm khởi tạo Activity hay Service để thực công việc mà mong muốn 1.2.1.2 Chu kỳ sống ứng dụng Android Một tiến trình Linux gói gọn ứng dụng Android tạo cho ứng dụng code cần xây dựng, khởi chạy chạy khi: - Nó không phụ thuộc - Hệ thống cần lấy lại nhớ mà chiếm giữ cho ứng dụng khác - Một khác thường đặc tính Android thời gian sống tiến trình ứng dụng không điều khiển trực tiếp Thay vào đó, xác định hệ thống qua kết hợp của: - Những phần ứng dụng mà hệ thống biết chạy - Những phần quan trọng người dùng - Bao nhiêu vùng nhớ chiếm lĩnh hệ thống 1.2.1.3 Activity View Nếu sử dụng Android, bạn có cảm nhận ứng dụng Android bao gồm trang hình giống trang giấy Ta hiểu đơn giản Activity Còn thứ ta nhìn thấy nút lệnh, textbox v.v View Activity Activity hiểu nôm na trang hình ứng dụng android mà người dùng thấy tương tác Activity chịu trách nhiệm tạo cửa sổ hiển thị cho bạn để sau điều khiển giao diện người dùng đặt vào Một activity 13 Các trạng thái vòng đời (Life Cycle) Hình 0.5: Các trạng thái vòng đời Một Activity chủ yếu có chu kỳ sau: - Active running: Khi Active chạy hình Activity tập trung - vào thao tác người dùng ứng dụng Paused: Activity tạm dừng (paused) focus người dùng - trông thấy Có nghĩa Activity không bao phủ đầy hình Một Activity tạm dừng sống bị kết thúc hệ thống trường hợp thiếu vùng nhớ Stopped: Nếu hoàn toàn bao phủ Activity khác Nó trạng thái thông - tin thành viên Người dùng không thấy thường bị loại bỏ trường hợp hệ thống cần vùng nhớ cho tác vụ khác Killed: Khi hệ thống bị thiếu nhớ, giải phóng tiến trình theo nguyên tắc ưu tiên Các Activity trạng thái stop paused bị giải phóng hiển thị lại Activity phải khởi động lại hoàn toàn phục hồi lại trạng thái trước 14 1.2.1.4 Intent Intent cầu nối Activity (ứng dụng Android thường bao gồm nhiều Activity, Activity hoạt động độc lập với thực công việc khác nhau) Intent người đưa thư, giúp triệu gọi truyền liệu cần thiết để thực Activity từ Activity khác Hình 0.6: Dùng Intent giao tiếp hai Activity Sử dụng Intents khởi động cho Activities: Phổ biến Intents việc liên kết liệu thành phần ứng dụng, Intents dùng để bắt đầu, dừng lại chuyển tiếp Activities ứng dụng Để mở activity khác activity có sẵn gọi startActivity sau:startActivity(myIntent);//Khởi động activity Dùng intent gửi thông điệp activity Có nhiều cách dùng intent để gửi thông điệp Và chúng để activity tạo intent đặt liệu mở rộng vào intent dùng intent kết nối với activity lại, activity lại đọc liệu mở rộng từ intent khởi động i.putExtra("newgame", true);//Thêm liệu mở rộng vào intent startActivity(i);//Khởi động activity lại getIntent().getExtras().getBoolean("newgame");// Lấy liệu từ intent khởi động 1.2.2 Lưu trữ liệu Android Hầu hết ứng dụng android cần lưu liệu, có lưu trạng thái ứng dụng trình onPause() để tiến trình người dùng không Hoặc lưu thiết lập người sử dụng Một vài ứng dụng khác lưu khối lượng lớn thông tin tệp tin sở liệu Thông thường có cách lưu giữ liệu: - Lưu giữ liệu đơn giản dạng khóa-giá trị vào tệp shared preferences - Lưu vào tệp tin tùy ý - Dùng sở liệu quản lý SQLite 15 Trong khuôn khổ đề tài này, ta đề cập tới cách lưu thứ nhất, “Lưu giữ liệu đơn giản dạng khóa-giá trị vào tệp shared preferences” 1.2.2.1 Lưu giữ liệu đơn giản dạng khóa-giá trị vào tệp shared preferences Khi cần lưu lượng nhỏ liệu dạng khóa-giá trị, người ta thường sử dụng cách Đặc điểm cách an toàn, nhanh chóng đặt chế độ riêng tư – để activity khác không đọc chế độ chia sẻ - chia sẻ với activity khác 16 CHƯƠNG 2: PHÂN TÍCH VÀ XÂY DỰNGĐỀ TÀI 2.1 Giới thiệu đề tài 2.1.1 Ứng dụng chế ảnh Ứng dụng chế ảnh dạng ứng dụng phổ biến tảng di động Ứng dụng cho phép người dung chỉnh sửa thuộc tính hình ảnh kích thước, cắt ảnh, xoay ảnh, chèn ký tự vào ảnh, tang độ tương phản, sang tối cho ảnh Nói cách đơn giản, loại hình ứng dụng chế ảnh biến hình ảnh ban đầu thành hình ảnh khác 2.1.2 Chức ứng dụng Ứng dụng bao gồm nhóm chức chính, tương đương với lựa chọn để lấy đầu vào xử lý cho ứng dụng - Chọn ảnh từ thư viện có sẵn máy Chế ảnh từ thư viện có sẵn ứng dụng Chụp ảnh Tạo ảnh với kích thước mặc định, màu sắc tùy chọn Tương ứng với nhóm chức có chức chỉnh sửa ảnh Các nhóm chức bao gồm: - Các công cụ chỉnh sửa ảnh bản: cắt ảnh (crop), xoay ảnh (rotate), chỉnh - sửa độ tương phản (contrast), chỉnh sửa độ sáng ảnh (brightness) Chèn nhãn, hình ảnh minh họa (sticker) vào ảnh Chèn văn vào ảnh (text) Vẽ hình vào ảnh (draw) Thêm khung cho ảnh (frame) 2.2 Phân tích đề tài Mục đích hướng đến xây dựng nên ứng dụng chế ảnhcó chức bản, xây dựng chức chính, cần thiết: - Thay đổi thông số ảnh (kích thước, độ tương phản…) Chèn thêm đối tượng vào ảnh Như vậy, để giải toán, cần thực bước sau: - Bước 1:Tiếp nhận ảnh đầu vào (hình ảnh có sẵn máy, hình ảnh có sẵn - có ứng dụng, chụp hình tạo hình ảnh) Bước 2:Thực chỉnh sửa ảnh 17 - + Từ ảnh đầu vào, người dùng chọn công cụ để hiển thị thực chỉnh sửa + Các công cụ hiển thị dạng ListView + Người dùng chọn công cụ tiến hành chỉnh sửa Bước 3: Lưu lại ảnh sau thay đổi vào thư mục chứa ứng dụng 2.3 Thiết kếứng dụng 2.3.1 Yêu cầu ứng dụng Đây loại phần mềm ứng dụng nên không cần yêu cầu cao đồ họa, thiết kế đảm bảo tính thân thiện với người dung, đảm bảo chức thực đầy đủ Sau nhập ảnh đầu vào, ứng dụng sử dụng ListView để hiển thị công cụ cho người dùng chọn 2.3.2 Thiết kế cấu trúc ứng dụng Chương trình thiết kế theo hướng đối tượng, gồm phần sau: - AssetsController: xử lý chức hiển thị đối tượng đồ họa ứng - dụng, bao gồm: đổ hình ảnh khung cho ảnh (AdapterFrame), đổ hình ảnh cho hình ảnh có sẵn ứng dụng (AdapterMeme), đổ hình ảnh nút điểu khiển (AdapterButton) ColorPicker: chức chọn màu xác định màu Chức vẽ (Draw): bao gồm class chức vẽ lên ảnh Chức chèn văn (Text):bao gồm class chức vẽ lên ảnh Chức sửa ảnh (Tool):bao gồm class chức cắt ảnh, xoay ảnh, chỉnh độ sáng tối… - Thiết kế layout ứng dụng: bao gồm class dựng layout cho phần ứng dụng 18 CHƯƠNG 3: CHƯƠNG TRÌNHDEMO 3.1 Giao diện trang chủ Hình 0.7: Giao diện 19 3.2 Giao diện trang chỉnh sửa Hình 0.8: Giao diện sau mở ảnh 20 3.3 Giao diện trang quản lý sticker Hình 0.9: Quản lý sticker 21 3.4 Giao diện trang chế ảnh Hình 0.10: Giao diện trang chế ảnh 22 3.5 Giao diện trang chèn văn vào ảnh Hình 0.11: Giao diện trang chèn văn vào ảnh 23 3.6 Giao diện trang quản lý hình ảnh có sẵn Hình 0.12: Quản lý hình ảnh có sẵn 24 3.7 Giao diện trang vẽ vào ảnh Hình 0.13:Giao diện trang vẽ ảnh 25 KẾT LUẬN Đề tài “Xây dựng ứng dụng chế ảnh Android” sản phẩm thực tế đạt sau học xong môn học “Lập trình nhúng” Qua thời gian học thực tập, đảm nhận dự án thực tế, thành viên nhóm hiểu thêm hệ điều hành Android, kiến thức hệ điều hành tảng di động Trong trình tìm hiểu lý thuyết Android xây dựng ứng dụng chế ảnh, chúng em thu kết sau: - Bước đầu hiểu hệ điều hành Android, nắm vững trình khởi tạo xây dựng project hoàn chỉnh - Hiểu yêu cầu giao diện đồ họa, số lý thuyết UI/UX để thiết kế ứng dụng Android - Biết cách thiết kế xây dựng chương trình thân thiện, dễ sử dụng - Hiểu số kiến thức lập trình Android Do thời gian kiến thức hạn chế nên sản phẩm tránh thiếu sót, em cố gắng phát triển thêm để chương trình nhiều chức hoàn thiện 26 TÀI LIỆU THAM KHẢO [1] Addison Wesley - Android Developers CookBook [2] Mark L Murphy - Beginning Android [3] http://developer.android.com [4] Các website chuyên thiết kế UI/UX UXPin, Creativebloq… 27 NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN [...]... cắt ảnh, xoay ảnh, chèn ký tự vào ảnh, tang độ tương phản, sang tối cho ảnh Nói một cách đơn giản, loại hình ứng dụng chế ảnh là biến hình ảnh ban đầu thành một hình ảnh khác 2.1.2 Chức năng của ứng dụng Ứng dụng bao gồm 4 nhóm chức năng chính, tương đương với 4 lựa chọn để lấy đầu vào xử lý cho ứng dụng - Chọn ảnh từ thư viện có sẵn của máy Chế ảnh từ thư viện có sẵn trong ứng dụng Chụp ảnh mới Tạo ảnh. .. thuyết về Android và xây dựng ứng dụng chế ảnh, chúng em đã thu được kết quả như sau: - Bước đầu hiểu về hệ điều hành Android, nắm vững quá trình khởi tạo và xây dựng một project hoàn chỉnh - Hiểu về yêu cầu giao diện đồ họa, một số lý thuyết về UI/UX để thiết kế ứng dụng Android - Biết cách thiết kế và xây dựng một chương trình thân thiện, dễ sử dụng - Hiểu được một số kiến thức cơ bản về lập trình Android. .. sử dụng cách này Đặc điểm của cách này là an toàn, nhanh chóng và có thể đặt chế độ riêng tư – để các activity khác không đọc được hoặc chế độ chia sẻ - chia sẻ với các activity khác 16 CHƯƠNG 2: PHÂN TÍCH VÀ XÂY DỰNGĐỀ TÀI 2.1 Giới thiệu đề tài 2.1.1 Ứng dụng chế ảnh Ứng dụng chế ảnh là một dạng ứng dụng phổ biến trên nền tảng di động Ứng dụng cho phép người dung chỉnh sửa các thuộc tính của hình ảnh. .. khi nhập ảnh đầu vào, ứng dụng sẽ sử dụng các ListView để hiển thị các công cụ cho người dùng chọn 2.3.2 Thiết kế cấu trúc ứng dụng Chương trình được thiết kế theo hướng đối tượng, gồm các phần chính sau: - AssetsController: xử lý chức năng hiển thị các đối tượng về đồ họa trong ứng - dụng, bao gồm: đổ hình ảnh các khung cho ảnh (AdapterFrame), đổ hình ảnh cho các hình ảnh có sẵn trong ứng dụng (AdapterMeme),... Mục đích hướng đến xây dựng nên một ứng dụng chế ảnhcó chức năng cơ bản, do vậy chỉ xây dựng những chức năng chính, cần thiết: - Thay đổi thông số cơ bản của ảnh (kích thước, độ tương phản…) Chèn thêm đối tượng vào ảnh Như vậy, để giải quyết bài toán, chúng ta cần thực hiện các bước cơ bản sau: - Bước 1:Tiếp nhận ảnh đầu vào (hình ảnh có sẵn trong máy, hình ảnh có sẵn - có trong ứng dụng, hoặc chụp hình... ảnh có sẵn 24 3.7 Giao diện trang vẽ vào ảnh Hình 0.13:Giao diện trang vẽ ảnh 25 KẾT LUẬN Đề tài Xây dựng ứng dụng chế ảnh trên Android là sản phẩm thực tế đầu tiên đạt được sau khi học xong môn học Lập trình nhúng” Qua thời gian học và thực tập, đảm nhận dự án thực tế, các thành viên trong nhóm đã hiểu thêm về hệ điều hành Android, các kiến thức về hệ điều hành trên nền tảng di động Trong quá trình. .. một hình ảnh) Bước 2:Thực hiện chỉnh sửa ảnh 17 - + Từ ảnh đầu vào, người dùng có thể chọn công cụ để hiển thị và thực hiện chỉnh sửa + Các công cụ được hiển thị dưới dạng ListView + Người dùng chọn công cụ và tiến hành chỉnh sửa Bước 3: Lưu lại ảnh sau khi thay đổi vào thư mục chứa ứng dụng 2.3 Thiết k ứng dụng 2.3.1 Yêu cầu ứng dụng Đây là loại phần mềm ứng dụng nên không cần yêu cầu cao về đồ họa,... ảnh các nút điểu khiển (AdapterButton) ColorPicker: chức năng chọn màu và xác định màu Chức năng vẽ (Draw): bao gồm các class chức năng vẽ lên ảnh Chức năng chèn văn bản (Text):bao gồm các class chức năng vẽ lên ảnh Chức năng sửa ảnh cơ bản (Tool):bao gồm các class chức năng cắt ảnh, xoay ảnh, chỉnh độ sáng tối… - Thiết kế layout ứng dụng: bao gồm các class dựng layout cho các phần chính của ứng dụng. .. tùy chọn Tương ứng với mỗi nhóm chức năng sẽ có các chức năng cơ bản của chỉnh sửa ảnh Các nhóm chức năng chính bao gồm: - Các công cụ chỉnh sửa ảnh cơ bản: cắt ảnh (crop), xoay ảnh (rotate), chỉnh - sửa độ tương phản (contrast), chỉnh sửa độ sáng của ảnh (brightness) Chèn các nhãn, hình ảnh minh họa (sticker) vào ảnh Chèn văn bản vào ảnh (text) Vẽ hình vào ảnh (draw) Thêm khung cho ảnh (frame) 2.2... getIntent().getExtras().getBoolean("newgame");// Lấy dữ liệu từ intent khởi động nó 1.2.2 Lưu trữ dữ liệu trong Android Hầu hết các ứng dụng android đều cần lưu dữ liệu, có khi chỉ là lưu trạng thái ứng dụng trong quá trình onPause() để tiến trình người dùng không mất Hoặc đôi khi là lưu thiết lập người sử dụng Một vài ứng dụng khác thì lưu một khối lượng lớn thông tin ra tệp tin hoặc cơ sở dữ liệu Thông thường có 3 ... tài 2.1.1 Ứng dụng chế ảnh Ứng dụng chế ảnh dạng ứng dụng phổ biến tảng di động Ứng dụng cho phép người dung chỉnh sửa thuộc tính hình ảnh kích thước, cắt ảnh, xoay ảnh, chèn ký tự vào ảnh, tang... triển sử dụng miễn phí Kit Android Software Development để xây dựng ứng dụng 6 1.1.2.2 Đặc tính mở Android Android xây dựng phép nhà phát triển để tạo ứng dụng di động hấp dẫn, tận dụng tất... Lưu trữ liệu Android Hầu hết ứng dụng android cần lưu liệu, có lưu trạng thái ứng dụng trình onPause() để tiến trình người dùng không Hoặc lưu thiết lập người sử dụng Một vài ứng dụng khác lưu