bài 1: thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · và tất...
Post on 30-Nov-2019
5 Views
Preview:
TRANSCRIPT
Quan2708@gmail.com
1 Học Lập trình ứng dụng Android|
Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng
đầu tiên
Bài học này hướng dẫn các bạn tải và cài đặt các công cụ cần thiết cho việc lập trình di động trên
môi trường Android. Hai thành phần cơ bản nhất mà chúng ta cần phải có chính là bộ Android SDK
(Software Development Kit) chứa các phiên bản Android, các hàm API cần thiết cũng như các
công cụ hỗ trợ lập trình khác và JDK (Java Development Kit) dùng để tạo ra môi trường thực thi
máy ảo cho hệ điều hành mà chúng ta đang sử dụng.
Các bạn có thể tải bộ Android SDK tại địa chỉ http://developer.android.com/sdk/index.html. Khi tải
về bộ Android SDK sẽ có định dạng *.exe trên môi trường Windows và ZIP đối với Linux và Mac
OS. Việc cài đặt chúng ta có thể chỉ định nơi lưu trữ trên ổ cứng thiết bị, lưu ý không nên chọn phân
vùng đã cài hệ điều hành bởi vì bộ SDK sẽ tăng dung lượng rất nhiều khi chúng ta tải về các phiên
bản khác.
Đối với JDK các bạn truy cập vào trang http://www.oracle.com/index.html để tải và cài đặt phiên bản
mới nhất để tăng tính ổn định và hỗ trợ tốt nhất.
Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo văn bản thì một công cụ
lập trình IDE (Integrated development environment) sẽ rất hữu ích và tiện lợi. Eclipse được xem là
một công cụ hỗ trợ rất tốt trong việc lập trình ứng dụng Android. Truy cập vào
tranghttp://eclipse.org/downloads/ để tiến hành tải và chạy trực tiếp Eclipse. Trong tài liệu
này Eclipseđược sử dụng là phiên bản 4.2.1 (Juno – Eclipse Classic).
Để có thể tạo cầu nối cho Eclipse với bộ Android SDK làm việc với nhau, ta cần phải sử dụng
thêm plugin ADT (Android Development Tool) cho Eclipse. Nó cho phép chúng ta tạo Project
Android, quản lí các máy ảo, đóng gói ứng dụng và nhiều thứ khác nữa.Việc cài đặt ADT đơn giản
chỉ cần theo các bước sau:
1. Chọn Help trên thanh tác vụ của Eclipse và chọn Install New Software và bấm vào nút Add.
2. Trong hộp thoại mới xuất hiện, điền địa chỉ truy cập để tải về ADT trong ô Location:https://dl-
ssl.google.com/android/eclipse/.
3. Nhấn OK để Eclipse bắt đầu tìm kiếm, sau khi hoàn thành sẽ hiện ra các plug-in. Đánh dấu
vào nút gốc Developer Tools và nhấn Next. Eclipse sẽ tự động tải về, ta tiếp tục
nhấn Nextđể qua bước cài đặt.
4. Đọc và chấp nhận các điều khoản bản quyền, nhấn Next và Finsh.
5. Sau khi cài xong cần thực hiện khởi động lại Eclipse và tham chiếu đến đến bộ Android
SDKđã cài đặt. Chọn mục Preferences trong phần Windows trên thanh tác vụ của Eclipse.
6. Chọn mục Android trong cây thư mục ở bảng phía bên trái.
7. Nhấn Browse, trỏ đến thư mục đã cài đặt bộ Android SDK và nhấn Apply. Danh sách các
phiên bản SDK sẽ được liệt kê như hình. Nhấn OK để hoàn thành cài đặt.
Vậy là các bạn đã thiết lập xong môi trường lập trình. Chúng ta sẽ tìm hiểu tiếp cách tạo ứng dụng
và chạy thực thi trên máy ảo.
Quan2708@gmail.com
2 Học Lập trình ứng dụng Android|
Sau khi cài Plugin ADT, ta sẽ thấy xuất hiện 2 biểu tượng trên thanh công cụ của Eclipse.
Biểu tượng đầu tiên là Android SDK Manager, quản lí các phiên bản Android. Ứng với từng phiên
bản là các tài liệu hướng dẫn, các ví dụ minh họa và các hàm API...Nhấn vào biểu tượng để khởi
động Android SDK Manager và ADT sẽ tượng động cập nhật các gói mới, bạn có thể lựa chọn
phiên bản Android hoặc các công cụ cần thiết và ấn Install Pakages .
Biểu tượng thứ 2 là Android Virtual Device Manager (AVD), cho phép lập trình viên tạo và quản lí
các thiết bị ảo. Để tạo thiết bị ảo ta khởi động AVD, ấn New, một hộp thoại mới hiện ra và điền vào
các thông tin sau:
1. Name: tên thiết ảo cần tạo (thường đặt tên theo phiên bản).
2. Target: phiên bản Android muốn thực thi trên thiết bị ảo này.
3. CPU/ABI: giả lập chip xử lý cho thiết bị ảo, mặc định là ARM (armeabi-v7a) hoặc Intel Atom
đối với từng phiên bản khác nhau.
4. SD Card: cấp phát bộ lưu trữ ngoài cho thiết bị hoặc trỏ đến tập tin ảnh có sẵn.
5. Snapshot: bật tắt chế độ chụp màn hình.
6. Skin: định nghĩa độ phân giải cũng như kích thước màn hình cho thiết bị ảo.
7. Hardware: bổ sung các thuộc tính phụ về phần cứng cho thiết bị. Ở đây ta cần bổ sung thêm
thuộc tính Keyboard Support để có thể nhập liệu vào thiết bị ảo từ bàn phím máy tính cá
nhân.
Quan2708@gmail.com
3 Học Lập trình ứng dụng Android|
Nhấn Create AVD để kết thúc quá trình tạo thiết bị ảo. Danh sách các thiết bị ảo được liệt kê trên
bảng bên tay phải, ta có nhấn chọn để khởi động (Start) hoặc các tuỳ chỉnh (Edit), xoá (Delete) và
xem lại thông số thiết bị (Details).
Việc tiếp theo ta sẽ thực hiện tạo một Project và chạy thử trên thiết bị ảo mà ta đã tạo. Để tạo
mớiProject ta sẽ dùng công cụ Android New Project Wizard theo các bước sau:
1. Từ thanh tác vụ của Eclipse chọn File à New à Android Application Project.
2. Trong hộp thoại mới xuất hiện điền các thông tin sau:
Quan2708@gmail.com
4 Học Lập trình ứng dụng Android|
a. Project Name: là tên của đề án.
b. Application Name: là tên ứng dụng mà chúng ta sẽ tạo.
c. Package Name: là tên định danh của gói phần mềm được hệ thống lưu trữ trên thiết
bị khi cài đặt ứng dụng. Thường sẽ được được theo tên của một tổ chức hoặc cá nhân
tạo ra ứng dụng. Bắt buộc phải có 2 trường dữ liệu trở lên và ngăn nhau bởi dấu chấm.
Ví dụ “htsi.test.demoapplication”.
d. Build SDK: chính là phiên bản mà lập trình viên sẽ phát triển ứng dụng, mặc nhiên
các hàm hỗ trợ sẽ được tích hợp nhằm tối ưu hoá ứng dụng trên phiên bản này.
e. Minimum Required SDK: phiên bản thấp nhất được chỉ định để chạy ứng dụng. Một
số các hàm API sẽ được gọi bổ sung trong phần thư viện hỗ trợ.
f. Create custom launcher icon: đánh dấu vào phần này để thiết lập biểu tượng cho
ứng dụng.
g. Mark this project as a library: đánh dấu cho biết chúng ta đang cần tạo ra một
Project mới dạng thư viện để sử dụng.
h. Location: nơi dùng để lưu Project. Có thể để mặc định hoặc tạo ra nơi lưu trữ mới
bằng cách đánh dấu hoặc huỷ đánh dấu phần Create Project in Workspace.
3. Nhấn Next qua hộp thoại tiếp theo sẽ là nơi để chúng ta tạo ra biểu tượng cho ứng dụng nếu
như hộp thoại trước chúng ta có đánh dấu vào phần Create custom launcher icon.
4. Tiếp tục nhấn Next ta sẽ qua hộp thoại tạo Activity (có thể tạm hiểu là màn hình ứng dụng
đầu tiên). Có hai lựa chọn là BlankActivity cho màn hình tất cả các phiên bản Android
vàMasterDetailFlow cho các phiên bản từ 3.0 (API 11) trở lên.
5. Trong hộp thoại cuối cùng, ta sẽ thiết lập thêm một số các thông số cho Activity như tên
(Activity Name), giao diện sẽ dùng (Layout Name), các điều hướng trên màn hình
(Navigation - chỉ hỗ trợ từ phiên bản Android 4.0). Nhấn Finish để hoàn thành việc tạo đề án.
Để chạy thử Project này ta thực hiện chuột phải lên tên Project, chọn Run As à Android Application.
Và đây sẽ màn hình ứng dụng đầu tiên của bạn.
Quan2708@gmail.com
5 Học Lập trình ứng dụng Android|
Bài 2: Xây dựng ứng dụng đa màn hình và truyền dữ liệu
Đây là Bài 2 của loạt bài hướng dẫn tự học Lập trình Android. Trong bài này chúng ta tìm hiểu cách
xây dựng giao diện cho Activity và các chuyển màn hình đơn giản thông qua việc tạo ra màn hình
đăng nhập cho ứng dụng. Tiến hành tạo Project, vào thư mục res/layout mở tập tin
activity_main.xml sẽ có giao diện như hình.
Quan2708@gmail.com
6 Học Lập trình ứng dụng Android|
Thực hiện kéo các điều khiển vào trong Layout như hình, chuyển qua chế độ XML (ô màu xanh)
sửa thuộc tính của các điều khiển như sau:
Điều Khiển android:id android:text
Button btnDangNhap @string/btnDN
TextView1 txtTaiKhoan @string/txtTK
TextView2 txtMatKhau @string/txtMK
EditText1 editTaiKhoan
EditText2 editMatKhau
Vào thư mục res/values mở tập tin strings.xml và bổ sung như sau:
Trong hàm onCreate của tập tin MainActivity.java xử lý sự kiện nhấn cho Button.
Quan2708@gmail.com
7 Học Lập trình ứng dụng Android|
Tạo lớp SecondActivity trong thư mục src với nội dung như sau:
Mở tập tin AndroidManifest.xml, trong cặp thẻ application bổ sung thêm Activity cho ứng dụng.
Tiến hành chạy Project, bấm vào nút Go ứng dụng sẽ chuyển qua màn hình SecondActivity như
hình, thực hiện bấm nút Back trên thiết bị ảo để trở về MainActivity
Quan2708@gmail.com
8 Học Lập trình ứng dụng Android|
Bài 3: Xây dựng ứng dụng ghi chú bằng ListView
Bài 3 trong chương trình hướng dẫn học Lập trình trên Android sẽ hướng dẫn bạn nội dung: Xây
dựng ứng dụng ghi chú bằng ListView. Tạo Project, thiết kế giao diện gồm một EditText và một
ListView, mở tập tin activity_main.xml trong res/layout và chỉnh sửa giống như hình.
Tạo thêm một tập tin giao diện cho mỗi dòng trong ListView. Nhấp chuột phải vào thư
mục res/layout/ chọn New à Android XML File. Chọn điều khiển TextView
Quan2708@gmail.com
9 Học Lập trình ứng dụng Android|
Mở tập tin MainActivity.java, tạo các biến thành viên trên hàm onCreate
Trong hàm onCreate khởi tạo giá trị cho các biến thành viên này
Quan2708@gmail.com
10 Học Lập trình ứng dụng Android|
Xử lý sự kiện onKeyListener cho EditText
Chạy ứng dụng thử nhập liệu vào EditText và nhấn Enter
Quan2708@gmail.com
11 Học Lập trình ứng dụng Android|
Tải mã nguồn ứng dụng tại https://www.dropbox.com/s/w5x4f84bejict7x/DemoListView.rar
Quan2708@gmail.com
12 Học Lập trình ứng dụng Android|
Bài 4: Xem ảnh với GridView
[Học Lập trình Android] Phần hướng dẫn Xem ảnh với GridView .
Mở tập tin activity_main.xml trong res/layout/ và chỉnh sửa giống như sau:
Thực hiện copy các hình ảnh vào thưmục res/drawable-hdpi (Lưu ý các file ảnh không nên viết hoa
hoặc có chứa kí tự số).
Tạo lớp ImageAdapter kế thừa từ lớp BaseAdapter và khai báo các biến thành viên. Lớp này sẽ có
nhiệm vụ cấu trúc dữ liệu cho mỗi ô trong Gridview.
Quan2708@gmail.com
13 Học Lập trình ứng dụng Android|
Thực thi các phương thức có bắt buộc của lớp kế thừa. Phương thức getCount trả về số lượng item
GridView cần thể hiện chính là độ dài mảng hình và phương thức getPosition trả về vị trí của mỗi
item. Phương thức getView tạo đối tượng ImageView thể hiện hình ảnh cho mỗi item.
Quan2708@gmail.com
14 Học Lập trình ứng dụng Android|
Khai báo các báo thành viên trong lớp MainActivity và thực hiện tham chiếu trong hàm onCreate
Chạy ứng dụng và xem ứng dụng thể hiện các hình ảnh.
Tải mã nguồn ứng dụng tại:
https://www.dropbox.com/s/w5x4f84bejict7x/DemoListView.rar
Quan2708@gmail.com
15 Học Lập trình ứng dụng Android|
Bài 5: Nâng cấp ứng dụng xem ảnh với ViewFliper
Kế thừa bài 4 trong chuyên mục [Học Lập trình Android], trong lớp MainActivity bổ sung biến sau:
Trong phương thức onCreate của MainActivity bổ sung đoạn mã nhận sự kiện khi người dùng bấm
chọn lên một ô trên GridView. Khi đó ta sẽ gửi một Intent đến Activity thứ 2 :
Từ thư mục res/layout của Project, tạo tập tin show_image_layout.xml với nội dung sau:
Quan2708@gmail.com
16 Học Lập trình ứng dụng Android|
Tạo thêm lớp ShowImage kế thừa từ lớp Activity và thực thi Inteface OnTouchListener. Thực hiện
nhận Intent được gửi từ MainActivty bằng phương thức getIntent. Truyền biến đã nhận trong Intent
để thiết lập tấm hình hiện tại cho ViewFlipper.
Thực hiện xử lý người dùng thực chạm và kéo trên màn hình trong hàm onTouch. Sử dụng biến
event và phương thức getAction để nhận biết người dùng khi nào nhấn xuống hoặc thả ra.
Quan2708@gmail.com
17 Học Lập trình ứng dụng Android|
Cuối cùng khai báo activity ShowImage trong tập tin Manifest (trong cặp thẻ application)
Chạy ứng dụng, bấm vào biếu tượng bất kì sẽ hiển thị và thực hiện kéo sang trái và sang phải để
thấy hiệu ứng.
Quan2708@gmail.com
18 Học Lập trình ứng dụng Android|
Bài 6: Sử dụng Spinner
Bài hướng dẫn học Lập trình Android này sẽ hướng dẫn các bạn thao tác với điều khiển Spinner để
thay đổi kích thước chữ của một TextView. Tạo Project, mở tập tin activity_main.xml và thêm điều
khiển Spinner như sau:
Khai báo biến Spinner, TextView và mảng Size trong lớp MainActivity
Trong hàm onCreate tiến hành tham chiếu cho Spinner và Textview, tạo Adapter và tiến hành xử lý
sự kiện khi người dùng chọn một item trong Spinner bằng phương thức setOnItemSelectedListener.
Quan2708@gmail.com
19 Học Lập trình ứng dụng Android|
Tiến hành chạy ứng dụng và bấm vào Spinner chọn item để xem sự thay đổi của chữ “Hello World!”
Tải mã nguồn ứng dụng tại: https://www.dropbox.com/s/72cavm5kv9q6xzy/DemoSpinner.rar
Quan2708@gmail.com
20 Học Lập trình ứng dụng Android|
Bài 7: Sử dụng AutoCompleteTextView và MultiAutoCompleteTextView
AutoCompleteTextView và MultiAutoCompleteTextView là hai điều khiển có thể hỗ trợ người dùng
khá nhiều trong quá trình nhập liệu khi Lập trình trên Android. Ví dụ khi người dùng nhập một từ,
điều khiển sử tự động tìm dữ liệu tương ứng để hoàn thành từ đó mà không cần người dùng nhập
hết.
Đầu tiên mở tập tin activity_main.xml thêm đoạn code sau:
Trong thư mục res/layout tạo thêm tập tin item_layout.xml có nội dung như sau:
Quan2708@gmail.com
21 Học Lập trình ứng dụng Android|
Trong lớp MainActivity khai báo mảng String làm dữ liệu:
Trong hàm onCreate khai báo tham chiếu các đối tượng và Adapter dữ liệu như sau:
Chạy ứng dụng thử gõ vào hai điều khiển ta sẽ thấy các dữ liệu tự động hiển thị như hình. Lưu ý đối
với AutoCompleteTextView ta chỉ có thể sử dụng được một lần tự động điền dữ liệu, còn
MultiAutoCompleteTextView các dữ liệu được tự động điền nhiều lần và cách nhau bằng dấu phẩy.
Quan2708@gmail.com
22 Học Lập trình ứng dụng Android|
Tải mã nguồn ứng dụng tại:
https://www.dropbox.com/s/95kxf8ls143rhx9/DemoAutoCompleteTextView.rar
Bài 8: Sử dụng TabHost
Học Lập trình Android: Cách sử dụng TabHost. Giống như trên Windows, Android cũng có có điều
khiển dạng thẻ Tab cho phép người dùng có thể chuyển đổi các khung nhìn với các nội dung khác
nhau trong cùng một giao diện cửa sổ (Activity).
Đầu tiên ta mở tập tin activity_main.xml trong thư mục res/layout và chỉnh sửa nội dung như sau:
Quan2708@gmail.com
23 Học Lập trình ứng dụng Android|
Mở tập tin MainActivity trong mục src, cho lớp MainActivity kế thừa từ lớp TabActivity thay vì
lớp Activity như sau:
Trong hàm onCreate khai báo các biến TabHost như sau:
Quan2708@gmail.com
24 Học Lập trình ứng dụng Android|
Chạy ứng dụng và di chuyển qua các thẻ khác bằng cách bấm vào Tab.
Tải mã nguồn ứng dụng tại: https://www.dropbox.com/s/fnkcngbeh6bit0s/DemoTabActivity.rar
Quan2708@gmail.com
25 Học Lập trình ứng dụng Android|
Bài 9: Ứng dụng hỗ trợ đa ngôn ngữ và màn hình
xoay ngang
Hướng dẫn Lập trình Android: tạo ứng dụng hỗ trợ đa ngôn ngữ và màn hình xoay ngang
Tạo project mới, trong thư mục res tạo các thư mục như sau:
Mở tập tin strings.xml trong thư mục values bổ sung các biến string như sau:
Mở tập tin trong activity_main.xml trong thư mục layout thiết kế như sau, lưu ý thuộc tính text của
các Button phải trỏ đến các biến string ở trên (ví dụ android:text = “@string/left_top”):
Quan2708@gmail.com
26 Học Lập trình ứng dụng Android|
Thực hiện chạy ứng dụng, khi ứng dụng đã hiện trên màn hình máy ảo, thực hiện tổ hợp phím
Ctrl+F12 để xoay màn hình, ta sẽ thấy vị trí các nút sẽ bị sai.
Thực hiện chép tập tin activity_main.xml trong thư mục layout vào thư mục layout-land, chỉnh sửa lại
vị trí các nút như sau:
Quan2708@gmail.com
27 Học Lập trình ứng dụng Android|
Đồng thời chép tập tin strings.xml vào thư mục values-vi chỉnh sửa như sau:
Chạy ứng dụng xoay màn hình để thấy giao diện nằm ngang. Xem giao diện tiếng Việt của ứng
dụng bằng cách trên máy ảo vào Setting à Language & Input à phần language chọn ngôn ngữ là
tiếng Việt.
Tải mã nguồn ứng dụng tại: https://www.dropbox.com/s/l7fcc5t2h3vpq1g/DemoMultiLangagues.zip
Quan2708@gmail.com
28 Học Lập trình ứng dụng Android|
Bài 10: Ứng dụng sử dụng Fragment và ViewPager
Hướng dẫn tự học Lập trình Android: Bài 10 - Ứng dụng sử dụng Fragment và ViewPager
Từ phiên bản Android 3.0 trở lên, bộ SDK bổ sung Fragment cho phép người dùng xây dựng giao
diện ứng dụng bằng cách tái sử dụng các tập tin Layout.
Tạo project mới, trong thư mục res/layout bổ sung tập tin giao diện fragment_layout.xml nội dung
như sau:
Mở tập tin strings.xml trong thư mục values bổ sung các biến string như sau:
Quan2708@gmail.com
29 Học Lập trình ứng dụng Android|
Mở tập tin activity_main.xml khai báo đối tượng ViewPager (lưu ý điều khiển này được xây dựng
trong gói android.support.v4.view do đó ta không thể kéo thả từ giao diện mà phải chỉnh sửa trong
code xml) như sau:
Trong tập tin MainActivity.java ta khai báo một inner class (lớp con) kế thừa từ lớp
FragmentPageAdapter.
Quan2708@gmail.com
30 Học Lập trình ứng dụng Android|
Sau đó chỉnh sử hàm onCreate như sau:
Thực hiện chạy ứng dụng, dùng thao tác kéo màn hình từ trái sáng phải để thấy hiệu ứng của View
Pager.
Tải mã nguồn ứng dụng tại: https://www.dropbox.com/s/d901afb9a0go9it/DemoViewPager.zip
Quan2708@gmail.com
31 Học Lập trình ứng dụng Android|
Bài 11: Ứng dụng đọc ghi tập tin kết hợp sử dụng Broadcast Receiver
Hướng dẫn Lập trình trên Android: Trong bài này, tôi sẽ hướng dẫn các bạn viết ứng dụng cho phép
lưu trữ tập tin, tất nhiên không nhất thiết phải sử dụng Broadcast Receiver mới có thể đọc ghi tập
tin, ta chỉ sử dụng lớp này để tăng tính tiện lợi.
Đầu tiên, mở tập tin activity_main.xml và thiết kế giao diện như sau:
Trong lớp MainActivity.java khai báo các biến cần thiết bao gồm 2 Button, một EditText và lớp
MyReceiver kế thừa từ lớp từ BroadcastReceiver có nội dung như sau:
Quan2708@gmail.com
32 Học Lập trình ứng dụng Android|
Dưới hàm onReceive khai báo hai phương thức readFile và writeFile như sau:
Cho phép MainActivity thực hiện Interface OnClickListener và vào phương thức onCreate tham
chiếu đến các biến đã khai báo và thực hiện đăng kí Receiver.
Quan2708@gmail.com
33 Học Lập trình ứng dụng Android|
Cuối cùng thực hiện hàm onClick như sau:
Quan2708@gmail.com
34 Học Lập trình ứng dụng Android|
Cuối cùng thực hiện hàm onClick như sau:
Để thực hiện lưu trữ tập tin trên sdCard bạn phải xin quyền trong tập tin AndroidManifest.xml (ở
dưới cùng Project) như sau:
Thực hiện chạy ứng dụng và thao tác với các nút đọc và ghi tập tin.
Tải mã nguồn ứng dụng tại: https://www.dropbox.com/s/fnkcngbeh6bit0s/DemoTabActivity.rar
Quan2708@gmail.com
35 Học Lập trình ứng dụng Android|
Bài 12: Tùy chỉnh hiển thị ListView
Trong Bài 3 tôi có hướng dẫn các bạn Lập trình Android các hiển thị dữ liệu theo dạng danh sách
ListView, tuy nhiên nhược điểm của cách này là chỉ có thể hiển thị 1 dòng dữ liệu. Nhưng trong
trường hợp ta cần thể hiện nhiều dòng dữ liệu phức tạp hơn như ví dụ sau:
Ta có thể thể trong ứng dụng Gmail có khá nhiều cho dữ liệu cho một dòng dữ liệu như tiêu đề, tên
người gửi, ngày tháng gửi…do đó ta cần thực hiện tùy chỉnh Listview để có thể hiển thị như trên.
Đầu tiên ta cần xác định có bao nhiêu dữ liệu trên một dòng và tiến hành xây dựng lớp tương ứng.
Ví dụ ở đây tôi cần hiển thị cho 3 dữ liệu trên 1 dòng thông tin về một quốc gia bao gồm cờ, tên
tiếng anh, tên tiếng việt. Ta xây dựng lớp Country đại diện như sau:
Quan2708@gmail.com
36 Học Lập trình ứng dụng Android|
Để có thể hiển thị dữ liệu như mong muốn ta cần xây dựng layout cho mỗi dòng trên Listview.
Tiếp theo ta cần xây dựng lớp Adapter cho phép đưa dữ liệu lên ListView. Ở đây tôi xây dựng lớp
MyAdapter.
Quan2708@gmail.com
37 Học Lập trình ứng dụng Android|
Ngay trong lớp này ta sẽ bổ sung thêm phương thức getView cho phép định dạng cho từng
dòng dữ liệu.
Tiếp theo ta xây dựng các đối tượng tương ứng và các dữ liệu cần thiết trong lớp MainActivity. Lưu
ý nhớ chép các file hình vào thư mục res/drawable.
Quan2708@gmail.com
38 Học Lập trình ứng dụng Android|
Cuối cùng trong hàm onCreate khởi tạo dữ liệu và setAdapter cho Listview.
Lưu ý ta sửa tập tin activity_main.xml như sau:
Tải mã nguồn ứng dụng tại: https://www.dropbox.com/s/kzsrov4b0xjqfng/DemoCustomListView.rar
Quan2708@gmail.com
39 Học Lập trình ứng dụng Android|
Bài 13: Sử dụng Option Menu
Trong ứng dụng trên thiết bị di động do hạn chế về kích thước màn hình nên các thao tác có tần số
sử dụng nhiều mới được thiết kế ngay trên màn hình ứng dụng. Các thao tác khác sẽ được thu gọn
trong Menu của ứng dụng, để gọi Menu này người dùng phải bấm phím Menu trên thiết bị. Trong
bài hướng dẫn Lập trình trên Android này, tôi sẽ hướng dẫn các bạn thiết kế Option Menu cho ứng
dụng của mình kèm theo cách chỉnh sửa phông và màu chữ.
Thiết kế màn hình ứng dụng gồm một TextView và một Spinner, trong tập tin activity_main.xml ta
sửa thành như sau:
Vào lớp MainActivity bổ sung các biến sau:
Trong hàm onCrate bổ sung đoạn code sau:
Quan2708@gmail.com
40 Học Lập trình ứng dụng Android|
Bổ sung các biến chuỗi để sử dụng trong tập tin strings.xml:
Trong thư mục res/menu tạo tập tin option_menu_font.xml và option_menu_color.xml với nội dung
như sau:
option_menu_font.xml
Quan2708@gmail.com
41 Học Lập trình ứng dụng Android|
option_menu_color.xml
Thực hiện copy các phông chữ có định dạng *.ttf vào thư mục asset của Project (ví dụ: comic.ttf
hoặc arial.ttf).
Bổ sung phương thức khởi tạo Option Menu cho ứng dụng khi người dùng nhấn phím Menu
Để chuyển đổi giữa 2 menu ta chỉnh sửa lại phương thức onPrepareOPtionMenu như sau:
Quan2708@gmail.com
42 Học Lập trình ứng dụng Android|
Trong thư mục res/values tạo tập tin colors.xml với nội dung sau:
Cuối cùng thực hiện bắt sự kiện khi người dùng chọn một item trên Menu:
Quan2708@gmail.com
43 Học Lập trình ứng dụng Android|
Chạy ứng dụng, chọn Fonts hoặc Colors trong Spinner sao đó bấm phím Menu trên thiết bị, khi giao
diện Menu hiển thị chọn một item để thấy hiệu ứng.
Tải mã nguồn ứng dụng tại: https://www.dropbox.com/s/5zy6stbjchffzjr/DemoOptionMenu.rar
Quan2708@gmail.com
44 Học Lập trình ứng dụng Android|
Bài 14: Sử dụng Context Menu
Hướng dẫn học lập trình Android: Đối với hầu hết các ứng dụng hiện nay, bao gồm ứng dụng có
sẵn trên thiết bị lẫn ứng dụng từ hãng thứ ba phát triển có thể nhận thấy điều khiển được sử dụng
nhiều nhất chính là ListView (hướng dẫn cơ bản ở bài 3 và nâng cao ở bài 12). Dạng điều khiển
danh sách cho phép chúng ta lưu trữ được nhiều trường dữ liệu trên cùng một màn hình, tuy nhiên
việc thao tác với từng mục sẽ khó hơn nếu không có sự hỗ trợ từ Context Menu, một dạng menu
giống như chuột phải trên Windows vậy.
Tạo project trong thư mục res/values bổ sung vào tập tin strings.xml đoạn mã sau:
Từ thư mục res/menu tạo tập tin context_menu.xml, đây là tập tin sẽ cấu hình nội dung cho menu,
có nội dung như sau:
Trong bài này ta sử dụng Listview để tương tác nên cần xây dựng một layout cho từng mục trên đó.
Chuột phải vào thư mục res/layout à New à Android XML File à Phần File ta đặt tên tập tin là
item_layout, phần Root Element ta chọn TextView. Chỉnh sửa nội dung giống như sau:
Quan2708@gmail.com
45 Học Lập trình ứng dụng Android|
Kéo điều khiển ListView vào trong tập tin activity_main.xml và bổ sung đoạn mã sau vào tập tin
MainActivity.xml:
Khởi chạy ứng dụng, nhấn và giữ một mục bất kỳ trên ListView ta sẽ thấy một pop-up xuất hiện, tuy
nhiên lúc này ta vẫn chưa xử lý cho các mục trên menu.
Quan2708@gmail.com
46 Học Lập trình ứng dụng Android|
Để thực hiện xử lý ta cần Override lại phương thực OnContextItemSelected, ở đây có ba thao tác
(Delete-Update-Share) nhưng tôi chỉ thực hiện phần Delete, hai thao tác còn lại các bạn làm tương
tự.
Quan2708@gmail.com
47 Học Lập trình ứng dụng Android|
Tải mã nguồn ứng dụng tại: https://www.dropbox.com/s/8vqiiwnpihfci5a/DemoContextMenu.rar
Quan2708@gmail.com
48 Học Lập trình ứng dụng Android|
Bài 15: Action Bar & Action Mode (Phần 1)
Ở bài trước ta đã làm việc với Option Menu, tuy nhiên từ phiên bản Android 3.0 trở lên Action Bar
được sử dụng để thay thế mang lại các thao tác dễ dàng hơn cho người dùng. Trong bài học lập
trình Android này tôi sẽ hướng dẫn các bạn thao tác Action Bar với ListView.
Tạo project, trong thư mục res/layout tạo tập tin item_layout.xml có nội dung như sau:
Trong lớp MainActivity tạo mới lớp tên Item để tổ chức dữ liệu cho một dòng trên Listview
Quan2708@gmail.com
49 Học Lập trình ứng dụng Android|
Trên hàm onCreate() khai báo các biến cần thiết để thao tác dữ liệu:
Tiếp tục tạo thêm lớp MyAdapter cho phép đưa dữ liệu lên ListView:
Chỉnh sửa tập tin main.xml trong thư mục res/menu như sau:
Quan2708@gmail.com
50 Học Lập trình ứng dụng Android|
Bổ sung các đoạn code cần thiết trong onCreate() để khởi chạy ứng dụng.
Khi chạy ứng dụng lên ta sẽ thấy nút “Add” nằm ở góc phải màn hình. Để xử lý tương tác ta cần
thực thi phương thức onOptionItemSelected.
Quan2708@gmail.com
51 Học Lập trình ứng dụng Android|
Thực thi chạy vào thao tác thêm dữ liệu, phần xóa chúng ta sẽ thực hành trong phần ActionMode ở
kì sau.
Tải mã nguồn ứng dụng tại: https://www.dropbox.com/s/ueoxsagy10q7ov1/DemoActionBar.rar
Quan2708@gmail.com
52 Học Lập trình ứng dụng Android|
Bài 16: Action Bar & Action Mode (Phần 2)
Học Lập trình Android, bài 16, chúng ta sẽ tiếp tục thực hành với Action Mode một phần không thể
thiểu trên Action Bar.
Từ Project, mở tập tin MainActivity.java bổ sung các biến sau:
Trong thư mục res/menu tạo tập tin action_bar_menu.xml với nội dung như sau:
Vào phương thức onCreate khởi tạo interface ActionMode.Callback, interface sẽ tự động phát sinh
ra 4 phương thức hỗ trợ chúng ta thao tác với Action Mode như khởi tạo, tương tác hoặc hủy.
Quan2708@gmail.com
53 Học Lập trình ứng dụng Android|
Trong hàm onCreateActionMode chỉnh sửa đoạn code khởi tạo giao diện menu như sau:
Vào phương thức getView của lớp MyAdapter bổ sung đoạn code khi người dùng bấm chọn trên
checkbox của một Item. (Bổ sung ngay trên câu lệnh “return v;”)
Quan2708@gmail.com
54 Học Lập trình ứng dụng Android|
Lúc này khi bấm chọn vào một Item ta sẽ thấy xuất hiện Menu cho xóa, tuy nhiên để xử lý việc xóa
ta cần bổ sung thêm đoạn code trong hàm onActionItemClicked sau:
Quan2708@gmail.com
55 Học Lập trình ứng dụng Android|
Tải mã nguồn ứng dụng tại: https://www.dropbox.com/s/8b396d8cp396ft2/DemoActionBar2.rar
Quan2708@gmail.com
56 Học Lập trình ứng dụng Android|
Bài 17: Sử dụng Webview Load HTML
Học Lập trình Android bài 17: hướng dẫn các bạn thực hành tạo webview để load các thông tin từ
một trang web bất kỳ, tất nhiên ứng dụng cần phải được phép truy cập internet. Tạo project, mở tập
tin AndroidManifest.xml bổ sung đoạn code sau (ngay trước cặp thẻ application).
Tiếp theo ta sẽ xây dựng layout, để có thể load một trang html điều cần thiết là phải có điều khiển
Webview, ở đây ta bổ sung thêm một EditText cho phép người dùng có thể linh hoạt điền các địa chỉ
URL khác nhau và một Button để xác nhận.
Mở tập tin values/strings.xml bổ sung 2 biến sau:
Vào thư mục res/layout mở tập tin activity_main.xml chỉnh sửa như sau:
Quan2708@gmail.com
57 Học Lập trình ứng dụng Android|
Xong phần giao diện, giờ ta qua phần xử lý khi người dùng nhập một địa chỉ URL vào ô EditText.
Mở tập tin MainActivity.java bổ sung các biến toàn cục sau:
Viết phương thức openBrowser cho phép load địa chỉ URL vào Webview
Quan2708@gmail.com
58 Học Lập trình ứng dụng Android|
Sau đó trong hàm onCreate ta tiến hành khởi tạo các biến có liên quan và bắt sự kiện khi người
dùng đã điền địa chỉ URL và nhấn phímEnter.
Bổ sung thêm đoạn code khi người dùng nhấn phím GO thay vì nhấn phím Enter.
Thực hiện build ứng dụng và nhập địa chỉ vào ô EditText, nhấn phím Enter hoặc bấm phím GO để
xem kết quả.
Tải mã nguồn ứng dụng tại: https://www.dropbox.com/s/q558dwwfa1iwnut/DemoWebView.zip
Quan2708@gmail.com
59 Học Lập trình ứng dụng Android|
Bài 18: Sử dụng Dialog Fragment
Dialog là dạng cửa sổ nhỏ cho phép người dùng có thể nhập thông tin hoặc đưa ra các quyết định
cuối cùng trong một chuỗi xử lý sự kiện. Ví dụ khi người dùng thoát ứng dụng hoặc xóa dữ liệu ta
cần đưa ra một cửa sổ nhỏ để xác nhận thông tin lại lần cuối.
Trong bài học Lập trình Android này tôi sẽ hướng dẫn các bạn tạo Dialog Fragment (một dạng API
mới) cho phép người dùng nhập liệu.
Tạo Project trong thư mục res/layout tạo tập tin fragment_edit_layout.xml với nội dung như sau, tập
tin này sẽ được dùng làm layout cho Dialog:
Mở tập tin activity_main.xml thêm nút bấm vào để hiển thi Dialog.
Quan2708@gmail.com
60 Học Lập trình ứng dụng Android|
Tiếp theo tạo lớp EditNameDialog kế thừa từ lớp FragmentActivity và nhận sự kiện
onEditorActionListener (bắt lại sự kiện khi người dùng thao tác với bàn phím). Trong lớp này ta cũng
tạo ra interface EditNameDialogListener để nhận dữ liệu người dùng đã nhập.
Quan2708@gmail.com
61 Học Lập trình ứng dụng Android|
Lưu ý lớp DialogFragment nên nằm trong gói android.support.v4.app.DialogFragment để tiện cho
các việc tương thích ngược trên các dòng máy có phiên bản hệ điều hành thấp hơn 3.0.
Quan2708@gmail.com
62 Học Lập trình ứng dụng Android|
Thực hiện build ứng dụng, nhấn nút Input để hiện Dialog sau đó nhập liệu vào ô EditText rồi nhấn
phím Done trên bàn phím để xem kết quả.
Tải mã nguồn ứng dụng tại: https://www.dropbox.com/s/mzaqodf5ttqi5hr/DemoDialogFragment.rar
Quan2708@gmail.com
63 Học Lập trình ứng dụng Android|
Bài 19: Thông báo bằng Status Notification
Ở bài học Lập trình Android trước chúng ta đã thực hiện thông báo cho người bằng Dialog, tuy
nhiên cách này chỉ sử hiệu quả khi người dùng tương tác với ứng dụng. Trong các trường hợp để
bảo đảm thông báo một cách hợp lý đến người dùng mà không ngắt ngang tương tác với ứng dụng
khác ta sẽ sử dụng Status Notification, cho dù người dùng có mở ứng dụng hoặc không. Có thể
thấy điều này thông qua một số ứng dụng có sẵn trong thiết bị như Message, Gmail...
Tạo mới Project, thiết kế layout có giao diện bao gồm một EditText, TextView và Button như sau
(nên thiết kế vào tập tin activity_main.xml):
Vào MainActivity khai báo các biến cần thiết trong hàm onCreate:
Quan2708@gmail.com
64 Học Lập trình ứng dụng Android|
Bổ sung phương thức createNotification, trong phương thức này ta sẽ định nghĩa giao diện cho một
thông báo bao gồm các thông tin như nội dung, tiêu đề, biểu tượng, thời gian gửi...nhưng quan
trọng nhất là dữ liệu đính kèm trong intent.
Quan2708@gmail.com
65 Học Lập trình ứng dụng Android|
Tiến hành xây dựng activity NotificationDetails để nhận dữ liệu khi người dùng nhấn vào thông báo:
Quan2708@gmail.com
66 Học Lập trình ứng dụng Android|
Thực hiện build ứng dụng, điền dữ liệu vào EditText và nhấn nút Tạo thông báo. Ta sẽ nhận được
thông báo như sau:
Bấm vào thông báo để xem nội dung đã điền trong EditText.
Tải mã nguồn ứng dụng tại: https://www.dropbox.com/s/5wcq5tum0vdz4ze/DemoNotification.rar
Quan2708@gmail.com
67 Học Lập trình ứng dụng Android|
Bài 20: Tích hợp SearchView vào ứng dụng
Trong ứng dụng khi thực hiện thao tác với khối dữ liệu lớn, hoặc muốn truy xuất ngay tức thời một
tập tin nào đó người dùng thường hay bối rối và mất nhiều thời gian để tìm ra chúng. Ở bài dạy Lập
trình Android này tôi sẽ hướng dẫn các bạn tích hợp điều khiển SearchView vào ứng dụng cho phép
tìm kiếm một dòng dữ liệu trong ListView.
Tạo Project, thực hiện kéo ListView vào tập tin activity_main.xml
sau đó trong thư mục res/menu/ tạo tập tin search_view.xml thực hiện khai báo như sau:
Mở tập tin MainActivity.java, cho lớp MainActivity thực thi giao diện onQueryTextListener và tiến
hành khai báo các biến cần thiết.
Quan2708@gmail.com
68 Học Lập trình ứng dụng Android|
Vào hàm onCreate thực hiện khởi tạo và tham chiếu giá trị cho các biến đã khai báo ở trên.
Override phương thức onCreateOptionMenu để thực hiện thêm SearchView vào thanh ActionBar.
Cuối cùng thực thi hai phương thức truy vấn dữ liệu khi người dùng nhập khung SeachView, ở đây
đơn giản ta gọi phương thức filter để Adapter tự sắp xếp dữ liệu.
Quan2708@gmail.com
69 Học Lập trình ứng dụng Android|
Thực hiện chạy ứng dụng bấm vào biểu tượng tìm kiếm, một EditText sẽ xuất hiện, tiến hành nhập
liệu ListView sẽ tự động tìm kiếm và sắp xếp dữ liệu cho chúng ta.
Tải mã nguồn ứng dụng tại: https://www.dropbox.com/s/v1gxxewqflz3ue0/DemoSearchView.rar
Quan2708@gmail.com
70 Học Lập trình ứng dụng Android|
Bài 21: Custom Windows
Trong những bài hướng dẫn Lập trình Android trước chúng ta đã thực hành khá nhiều giao diện
bằng cách xây dựng layout cho Activity. Nhưng thật ra để có thể quản lý Activity ở phía bên dưới
chúng ta còn một đối tượng khác nữa, đó chính là Windows. Trong bài này, tôi sẽ hướng dẫn các
bạn xây dựng layout cho Activity mà không cần dùng đến hàm setContentView quen thuộc nữa.
Đầu tiên xây dựng layout row.xml với nội dung như sau:
Tiếp theo chỉnh sửa tập tin activity_main.xml để xây dựng giao diện chủ
Quan2708@gmail.com
71 Học Lập trình ứng dụng Android|
Trog tập tin MainActivity.java ta tiến hành tham chiếu đến các điều khiển đã khai báo trong XML và
thực hiện xử lý hàm onClick cho hai nút bấm. Lưu ý tất cả viết trong hàm onCreate.
Quan2708@gmail.com
72 Học Lập trình ứng dụng Android|
Thực hiện build ứng dụng, bấm vào 2 nút để thấy kết quả.
Tải mã nguồn ứng dụng ở đây:
https://www.dropbox.com/s/htnb6buvxdg1bsl/DemoCustomWindows.rar
Quan2708@gmail.com
73 Học Lập trình ứng dụng Android|
Bài 22: VelocityTracker và ứng dụng trong lập trình Game.
Trong bài về ViewFlipper tôi đã có hướng dẫn các bạn sử dụng onTouchListener để bắt lại sự kiện
cảm ứng trên màn hình thiết bị. Ngoài cách này Android còn cung cấp cho chúng ta lớp
VelocityTracker cho phép ta ghi lại vận tốc di chuyển của một đối tượng trên màn hình, do đó minh
họa này sẽ rất hữu ích cho các bạn yêu thích Lập trình Game.
Tạo Project, thực hiện tạo một đối tượng custom bằng Java code như sau:
Quan2708@gmail.com
74 Học Lập trình ứng dụng Android|
Sau đó tùy chỉnh tập tin giao diện activity_main.xml đơn giản chỉ bao gồm một đối tượng DotView và
hai TextView dùng để ghi nhận dữ liệu gia tốc như sau:
Mở tập tin MainActivity.java, cho lớp MainActivity thực thi phương thức onTouchEvent đồng thời
khai báo tham chiếu đến đối tượng custom sử dụng phương thức này để có thể di chuyển. Trong
lớp này ta cũng sử dụng lớp Velocitytracker để ghi nhận vận tốc khi ta di chuyển đối tượng.
Quan2708@gmail.com
75 Học Lập trình ứng dụng Android|
Quan2708@gmail.com
76 Học Lập trình ứng dụng Android|
Chạy ứng dụng thực hiện kéo và thả đồi tượng để thấy hiệu ứng, tuy đơn giản nhưng các bạn có
thể sử dụng trong nhiều trường hợp khác nhau khi cần thiết.
Tải mã nguồn ứng dụng tại:
https://www.dropbox.com/s/m5hzuhtnj7nwj94/DemoVelocityTracker.rar
Quan2708@gmail.com
77 Học Lập trình ứng dụng Android|
Bài 23: Xây dựng ứng dụng chụp ảnh với Camera API
Android cung cấp cho chúng ta hầu như các API để tương tác với tất cả các thiết bị phần cứng, tuy
nhiên có thể nói trong số đó Camera là phần khá hấp dẫn và lý thú. Trong bài này tôi sẽ hướng dẫn
sơ lược về cách xây dựng ứng dụng Android chụp ảnh cơ bản nhất. Phần hoàn thiện và hiệu ứng
sẽ cập nhật trong bài sau.
Để bắt đầu làm chúng ta sẽ không xây dựng giao diện, mà việc đầu tiên là tập tin Manifest và xin hai
quyền sau:
Như vậy là chúng ta đã có quyền truy cập vào Camera của thiết bị. Tiếp theo ta sẽ xây dựng giao
diện bao gồm một SurfaceView, ImageButton và HorizontalScrollView.
Quan2708@gmail.com
78 Học Lập trình ứng dụng Android|
Mở tập tin MainActivity. Java khai báo 2 biến toàn cục là Camera và Layout chứa các tấm hình chụp
được, sau đó tham chiếu các đối tượng trong hàm onCreate.
Thực hiện truy xuất dữ liệu từ Camera bằng các thực thi các hàm trong Interface Callback của đối
tượng SurfaceHolder.
Quan2708@gmail.com
79 Học Lập trình ứng dụng Android|
Cuối cùng xử lý cho nút chụp hình, đăng ký hàm onClickListener và cho phép thực thi hàm
PictureCallback trong lớp Camera.
Quan2708@gmail.com
80 Học Lập trình ứng dụng Android|
Thực hiện build ứng dụng và trải nghiệm với Camera API.
Tải mã nguồn ứng dụng tại: https://www.dropbox.com/s/ywd48bk3gbyxf08/DemoCamera.rar
Quan2708@gmail.com
81 Học Lập trình ứng dụng Android|
Bài 24: View Animation
Trong Lập trình ứng dụng Android, Animation (các chuyển hoạt) như một thành phần cốt yếu để
tăng thêm trải nghiệm cho người dùng trong quá trình sử dụng. Trong loạt bài tiếp theo, tôi sẽ
hướng dẫn các bạn làm quen với các Animation API. Bài đầu tiên chúng ta sẽ làm quen với View
Animation.
ViewAnimation được sử dụng rộng rãi trong hầu hết các phiên bản Android, tính tiện dụng cao cũng
như dễ dàng khai báo. Nếu như các chuyển hoạt không quá phức tạp thì ViewAnimation nên là lựa
chọn đầu tiên.
Trong ViewAnimation bao gồm các chuyển hoạt sau: scale (phóng to hoặc thu nhỏ), alpha (độ trong
suốt), translate (thay đổi vị trí) và rotate (quay).
Tạo Project, trong thư mục res tạo thư mục anim, sau đó lần lượt tạo các tập tin sau:
Khai báo cho từng tập tin tương ứng:
+ alpha_anim.xml
Quan2708@gmail.com
82 Học Lập trình ứng dụng Android|
+ rotate_anim.xml
+ scale_anim.xml
+ translate_anim.xml
+ set_anim.xml
Quan2708@gmail.com
83 Học Lập trình ứng dụng Android|
Mở tập tin activity_main.xml, thiết kế giao diện với các điều khiển như sau:
View android:id android:text
Button btnAlpha Alpha
Button btnRotate Rotate
Button btnScale Scale
Button btnTranslate Translate
Button btnSet Set
TextView textAnim
Hello View
Animation!
Quan2708@gmail.com
84 Học Lập trình ứng dụng Android|
Vào trong tập tin MainActivity tiến hành khai báo và khởi tạo các thành phần trong giao diện và thiết
lập Animation thông qua các lớp tương ứng. Viết phương thức setUpAnimation để xử lý chung cho
các tất cả Animation.
Xử lý và gọi phương thức trong hàm onCreate.
Quan2708@gmail.com
85 Học Lập trình ứng dụng Android|
Thực hiện cài ứng dụng lên thiết bị, bấm các nút Animation để xem hiệu ứng.
Tải mã nguồn ứng dụng tại: https://www.dropbox.com/s/kib00z6nqvk8att/DemoViewAnimations.rar
Quan2708@gmail.com
86 Học Lập trình ứng dụng Android|
Bài 25: Property Animation
Lập trình Android bài 25. Trong bài trước tôi đã hướng dẫn các bạn cách sử dụng View Animation,
tuy nhiên từ phiên bản Android 3.0 trở lên bộ SDK được bổ sung thêm một cách thức nữa để làm
việc với các chuyển hoạt được gọi là Property Animation. Về bản chất cả hai như nhau, tuy nhiên
đối với Property Animation ta sẽ chỉ định thuộc tính mà chúng ta muốn thực hiện chuyển hoạt.
Tạo Project, trong thư mục res tạo thư mục animator, sau đó lần lượt tạo các tập tin sau:
Khai báo cho từng tập tin tương ứng:
+ fade.xml
+ move.xml
+ scale.xml
Quan2708@gmail.com
87 Học Lập trình ứng dụng Android|
+ spin.xml
+ combo.xml
Quan2708@gmail.com
88 Học Lập trình ứng dụng Android|
Mở tập tin activity_main.xml, thiết kế giao diện với các điều khiển như sau:
View android:id android:text
Button btnFade Fade
Button btnSpin Spin
Button btnScale Scale
Quan2708@gmail.com
89 Học Lập trình ứng dụng Android|
Vào trong tập tin MainActivity tiến hành khai báo và khởi tạo các thành phần trong giao diện và gọi
phương thức loadAnimator từ lớp AnimatorInflater để truyền các thông số từ tập tin xml vào đối
tượng Animator . Viết phương thức setUpAnimation để xử lý chung cho các tất cả Animatior đó.
Button btnMove Move
Button btnCombo Combo
TextView textAnim
Hello Property
Animation!
Quan2708@gmail.com
90 Học Lập trình ứng dụng Android|
Thực hiện cài ứng dụng lên thiết bị, bấm các nút Animation để xem hiệu ứng.
Tải mã nguồn ứng dụng
tại: https://www.dropbox.com/s/kib00z6nqvk8att/DemoViewAnimations.rar
Quan2708@gmail.com
91 Học Lập trình ứng dụng Android|
Bài 26: Expandable Listview
Trong bài dạy Lập trình Android này, tôi sẽ hướng dẫn các bạn sử dụng Expandable Listview, đối
tượng mở rộng từ lớp Listview và tích hợp thêm tính năng gom nhóm các “item”, cho phép hiển
thiện theo dạng danh sách có thể thu gọn hoặc hiển thị đầy đủ.
Để xây dựng đối tượng này các bạn thực hiện tạo project, mở tập tin activity_main.xml chỉnh sửa
như sau:
(hoặc thao tác nhanh bằng cách kéo thả từ Palette à Composite à Expandable Listview).
Ta cần tạo tập tin layout cho “group” và “item”:
+ layout_group_list.xml
Quan2708@gmail.com
92 Học Lập trình ứng dụng Android|
+ layout_item_list.xml
Tạo lớp ExpandAdapter kế thừa từ lớp BaseExpandableListAdapter (cần thực thi các phương thức
cần thiết của lớp). Hai phương thức getChildrenCount và getGroupCount thiết lập số lượng “group”
và số lượng “item” trong một “group” tương ứng.
Quan2708@gmail.com
93 Học Lập trình ứng dụng Android|
Cũng trong lớp này tiến hành xây dựng giao diện cho “group” thông qua phương getGroupView và
giao diện “item” thông qua getChildView.
Quan2708@gmail.com
94 Học Lập trình ứng dụng Android|
Quan2708@gmail.com
95 Học Lập trình ứng dụng Android|
Thực hiện cài ứng dụng lên thiết bị, bấm các “group” để thấy các “item” bên trong.
Tải mã nguồn ứng dụng tại:
https://www.dropbox.com/s/c5oli37bfedxusb/DemoExpandableListview.rar
Quan2708@gmail.com
96 Học Lập trình ứng dụng Android|
Bài 27: Layout Change Animation
Trong bài Lập trình Android này, tôi sẽ hướng dẫn các bạn sử dụng Expandable Listview, đối tượng
mở rộng từ lớp Listview và tích hợp thêm tính năng gom nhóm các “item”, cho phép hiển thiện theo
dạng danh sách có thể thu gọn hoặc hiển thị đầy đủ.
Để xây dựng đối tượng này các bạn thực hiện tạo project, mở tập tin activity_main.xml chỉnh sửa
như sau:
(hoặc thao tác nhanh bằng cách kéo thả từ Palette à Composite à Expandable Listview).
Ta cần tạo tập tin layout cho “group” và “item”:
+ layout_group_list.xml
Quan2708@gmail.com
97 Học Lập trình ứng dụng Android|
+ layout_item_list.xml
Tạo lớp ExpandAdapter kế thừa từ lớp BaseExpandableListAdapter (cần thực thi các phương thức
cần thiết của lớp). Hai phương thức getChildrenCount và getGroupCount thiết lập số lượng “group”
và số lượng “item” trong một “group” tương ứng.
Quan2708@gmail.com
98 Học Lập trình ứng dụng Android|
Cũng trong lớp này tiến hành xây dựng giao diện cho “group” thông qua phương getGroupView và
giao diện “item” thông qua getChildView.
Quan2708@gmail.com
99 Học Lập trình ứng dụng Android|
Quan2708@gmail.com
100 Học Lập trình ứng dụng Android|
Thực hiện cài ứng dụng lên thiết bị, bấm các “group” để thấy các “item” bên trong.
Tải mã nguồn ứng dụng tại:
https://www.dropbox.com/s/c5oli37bfedxusb/DemoExpandableListview.rar
Quan2708@gmail.com
101 Học Lập trình ứng dụng Android|
Bài 28: Alarm Service
Trên thiết bị di động thường thì thiết bị nào cũng được trang bị một ứng dụng dùng để thông báo
công việc cho người dùng hoặc là báo thức hoặc là nhắc nhở. Trong bộ phát triển phần mềm
Android, để hổ trợ các lập trình viên xây dựng các ứng dụng thông báo theo thời gian thực, Google
đã phát triển lớp AlarmManager để thực hiện điều này.
Giới thiệu sơ lược để các bạn hiểu thêm giờ tôi sẽ đi vào thực hành.
Tạo Project, mở tập tin giao diện activity_mainl.xml chỉnh sửa như sau:
Xây dựng lớp AlarmReceiver kế thừa từ lớp BroadcastReceiver, nhiệm vụ chính của lớp này là sẽ
hiện thông báo khi đến thời gian ta đã thiết lập trước.
Quan2708@gmail.com
102 Học Lập trình ứng dụng Android|
Vào tập tin AndroidManifest.xml, dưới thẻ Activity bổ sung đăng ký cho Receiver như sau:
Mở tập tin MainActivty.java, ta sẽ bổ sung đoạn code để xử lý cho hai nút bấm khởi tạo Alarm và
dừng Alarm. Ở đây ta cũng cần khởi chạy AlarmReceiver khi vừa chạy ứng dụng.
Quan2708@gmail.com
103 Học Lập trình ứng dụng Android|
Chạy ứng dụng, ta sẽ ứng dụng liên tục hiện Toast để thông báo giờ hiện tại cho dù có thoát ứng
dụng đi chăng nữa. Để dừng thông báo ta bấm nút Cancle Alarm.
Tải mã nguồn ứng dụng tại: https://www.dropbox.com/s/pqfb9kh8s9npo04/DemoAlarm.zip
Quan2708@gmail.com
104 Học Lập trình ứng dụng Android|
Bài 29: ClipBoard
Từ phiên bản Android 3.0 trở lên, Android hỗ trợ lập trình viên một công cụ rất hữu ích trong việc
thực hiện xây dựng các thao tác sao chép và dán mang tên ClipBoard. Hầu hết các dạng dữ liệu từ
đơn giản đến phức tạp Clipboard đều hỗ trợ rất tốt, trong bài này tôi sẽ hướng dẫn các bạn Lập
trình trên Android, thực hiện sao chép các dữ liệu đơn giản bao gồm Text, Intent và URI.
Tạo Project trong tập tin layout activty_main.xml chỉnh sửa nội dung như sau:
Giao diện bao gồm 4 Button, 1 Spinner và 1 EditText.
Mở tập tin values/strings.xml bổ sung các biến cần thiết.
Quan2708@gmail.com
105 Học Lập trình ứng dụng Android|
Cơ bản đã xong phần giao diện. Trong phần code xử lý chính ta sẽ khởi tạo đối tượng
ClipboardManager để thực hiện các thao tác sao chép và dán dữ liệu. Đối tượng
onPrimaryClipChangedListener dùng để lắng nghe các thay đổi dữ liệu trong Clipboard.
Mở tập tin MainActivity.java bổ sung đoạn code sau:
Trong hàm onCreate tiến hành khởi tạo và tham chiếu các đối tượng vừa khai báo cũng như đăng
ký lắng nghe sự thay đổi dữ liệu trong Spiner:
Quan2708@gmail.com
106 Học Lập trình ứng dụng Android|
Xây dựng các phương thức thực hiện khi người thao tác trên các nút bấm.
Quan2708@gmail.com
107 Học Lập trình ứng dụng Android|
Cuối cùng xây dựng phương thức updateClipData để thực hiện các cập nhật dữ liệu khi người dùng
thay đổi các định dạng dữ liệu sao chép và dán.
Quan2708@gmail.com
108 Học Lập trình ứng dụng Android|
Tải mã nguồn ứng dụng tại: https://www.dropbox.com/s/4qeaibxhajreca5/DemoClipBoard.zip
Quan2708@gmail.com
109 Học Lập trình ứng dụng Android|
Bài 30: Internet Resource
Một trong những yếu tố quan trọng góp phần sự thành công của điện thoại thông minh ngày nay
chính là nhờ vào sự tồn tại của Internet. Không tự nhiên mà Google từ một nhà quản lý dịch vụ
Internet lại chuyển sang mảng phát triển hệ điều hành và cuối cùng họ đã thành công với Android
khi tất cả dịch vụ của Google đều đến tận tay người dùng như Youtube, Gmail, Google+…
Trong tuần này tôi sẽ hướng dẫn các bạn cách kết nối đến Internet và lấy về dữ liệu dạng hình ảnh
và hiển thị nó. Tất nhiên là các bạn vẫn có thể thực hiện tương tự đối với dữ liệu khác.
Tạo Project, mở tập tin activity_main.xml chỉnh sửa như sau:
Ở layout trên ta có một Button để bắt đầu lấy dữ liệu, một Textview để hiện tên ảnh và một
ImageView dùng để hiển thị ảnh. Vào MainActivity.java lần lượt khai báo các đối tượng trên.
Quan2708@gmail.com
110 Học Lập trình ứng dụng Android|
Biến url sẽ dùng để chứa địa chỉ ảnh, các bạn có dùng địa chỉ khác nếu muốn.
Khai báo phương thức để kết nối đến Internet và chuyển kết nối từ InputStream thành một hình ảnh
dạng Bitmap.
Từ phiên bản Android 4.0 trở lên chúng ta không được phép gọi các phương thức để thực hiện kết
nối đến Internet trên tiến trình chính, nên tôi sẽ sử dụng một tiến trình ngầm được hỗ trợ được gọi là
AsyncTask.
AsyncTask được phân ra hai nhiệm vụ chính là thực hiện các phiên làm việc trên tiến trình phụ
(phương thức doInBackground) và trả dữ liệu lên tiến trình chính khi thực hiện xong (phương thức
onPostExcute).
Quan2708@gmail.com
111 Học Lập trình ứng dụng Android|
Công việc còn lại khá đơn giản, các bạn vào hàm onCreate tiến hành tham chiếu các đối tượng
trong xml và thực hiện gọi AsynTask khi người dùng nhấn nút.
Quan2708@gmail.com
112 Học Lập trình ứng dụng Android|
Trước khi build ứng dụng, các bạn cần làm thao tác khá quan trọng đó là xin quyền kết nối Internet
trong tập tin AndroidManifest.xml vì chúng ta cần kết nối Internet mà!
Hướng dẫn Lập trình Android. Tải mã nguồn ứng dụng tại:
https://www.dropbox.com/s/ys8cz123dm3wnqy/DemoInternetResource.zip
Quan2708@gmail.com
113 Học Lập trình ứng dụng Android|
Google Maps Android API – phần 1
Trong các bài tập tiếp theo đây Tui sẽ hướng dẫn các bạn từng bước tiếp cập với Google Map
thông qua các bài tập mẫu từ dễ lên khó, với mong muốn giúp các bạn có thể tự lập trình cũng như
cải tiến theo cách của mình và áp dụng một cách hiệu quả nhất vào ứng dụng của mình.
1) Cách Thiết lập Google Map trong ứng dụng Android:
Google Maps Android API (GMAA) bao gồm các dữ liệu bản đồ được phát triển bởi Google Inc cho
phép lập trình viên tích hợp vào các ứng dụng thông qua các phương thức được cung cấp sẵn.
GMAA hỗ trợ các thao tác với giao diện đồ họa của bản đồ bao gồm:
• Vẽ biểu tượng trên bản đồ (Marker).
• Đồ họa đường thẳng (Polylines).
• Đồ họa hình đa giác (Polygons).
• Bitmap trên bản đồ (Ground & Tile Overlay).
Google Maps Android API Key: chuỗi mã hóa được Google cung cấp miễn phí để quản lý và chứng
thực việc truy xuất dữ liệu bản đồ trên ứng dụng
(được lấy trên https://code.google.com/apis/console).
GMAA Key được liên kết thông qua Digital Cerfiticate (DC-Chứng thư số) và Pakage Name (Tên
đóng gói) của ứng dụng.
Tạo GMAA Key bao gồm 3 bước chính như sau:
Bước 1: Truy xuất thông tin DC bằng mã SHA-1 (dùng command line hoặc từ eclipse).
Bước 2: Đăng ký Project trong Google API Console.
Bước 3: Tích hợp Google Map Service vào Project và gửi yêu cầu cấp GGMA Key.
Quan2708@gmail.com
114 Học Lập trình ứng dụng Android|
Trong mọi ứng dụng liên quan tới Google Map thì cần Cấu hình tập tin AndroidManifest về một số
thứ như:
Khai báo một số quyền truy cập phần cứng và sử dụng dữ liệu người dùng.
Việc xác định quyền sử dụng dữ liệu bản đồ thông qua GMAA KEY. KEY này được khai báo trong
tag meta-data nằm trong tag application:
<meta-data
android:name="com.google.android.maps.v2.API_KEY" android:value="API_KEY"/>
Với API_KEY là được lấy từ Google Developers
Khai báo version sử dụng:
<meta-data
android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
Một số quyền cần thiết lập trong Manifest như sau:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
Cần cung cấp OpenGL 2.0 cho việc đồ họa bản đồ:
<uses-feature
android:glEsVersion="0x00020000" android:required="true"/>
Quan2708@gmail.com
115 Học Lập trình ứng dụng Android|
Cuối cùng ta có một Manifest tương tự như sau:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="tranduythanh.com.learngooglemap"
android:versionCode="1"
android:versionName="1.0" >
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="19" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyAWPt-7pVRw-HUBoy9J8_YtB6qPDpp94lM" />
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Quan2708@gmail.com
116 Học Lập trình ứng dụng Android|
Ở trên bạn thấy API_KEY =AIzaSyAWPt-7pVRw-HUBoy9J8_YtB6qPDpp94lM
Chi tiết lấy API_KEY sẽ được hướng dẫn ở bài sau.
2) Tương tác các đối tượng GoogleMap:
Tạo các đối tượng để thực hiện tương tác giữa ứng dụng với người dùng bao gồm:
GoogleMap:
• Kết nối đến Google Map Service.
• Tải dữ liệu bản đồ theo từng mảng nhỏ (tiles).
• Thể hiện dữ liệu bản đồ trên màn hình thiết bị.
• Thể hiện các điều khiển giao tiếp như thu phóng, la bàn…
• Xử lý các tương tác thu phóng, xoay, góc nhìn…
MapFragment: xây dựng giao diện bản đồ bằng cách xây dựng Fragment.
MapView: xây dựng giao diện bản đồ như một điều khiển và tương tác với Activity.
Truy xuất và sử dụng đối tượng GoogleMap từ thẻ fragment trong XML:
GoogleMap map = ((MapFragment)getFragmentManager().findFragmentById(R.id.map)).getMap();
map.setMapType(GoogleMap.MAP_TYPE_SATELLITE); map.getUiSettings().setZoomControlsEnabled(true); map.setMyLocationEnabled(true);
Quan2708@gmail.com
117 Học Lập trình ứng dụng Android|
Hoặc:
MapFragment mapFragment = MapFragment.newInstance();
GoogleMap mMap = mapFragment.getMap(); mMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE); getFragmentManager().beginTransaction().add(R.id.container,mapFragment).commit();</pre>
Các kiểu giao diện hiển thị bản đồ mà Google Map cung cấp:
• MAP_TYPE_NORMAL
• MAP_TYPE_HYBRID
• MAP_TYPE_NONE
• MAP_TYPE_SATELLITE
• MAP_TYPE_TERRAIN
Các kiểu này ta có thể dùng coding để thay đổi kiểu hiển thị thông qua hàm : setMapType(int)
Một số hình minh họa cách hiển thị:
Quan2708@gmail.com
118 Học Lập trình ứng dụng Android|
Ta có thể thiết lập các giá trị ban đầu và điều khiển cho GoogleMap bao gồm:
• Góc nhìn (Camera)
• Thu phóng (zoom)
• Chuyển điểm (location)
• Xoay (bearing)
• Góc nghiêng (titl)
• La bàn và điều khiển thu phóng.
• Các điều khiển cử chỉ trên bản đồ.
Ta thiết lập các giá trị ban đầu và điều khiển cho GoogleMap trong layout XML:
Quan2708@gmail.com
119 Học Lập trình ứng dụng Android|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:id="@+id/LinearLayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="tranduythanh.com.learngooglemap.MainActivity" >
<fragment android:id="@+id/map" android:layout_width="match_parent" android:layout_height="match_parent" class="com.google.android.gms.maps.MapFragment" />
</LinearLayout>
Bạn để ý : class=”com.google.android.gms.maps.MapFragment”
Bạn có thể lấy fragment là root.
Ta cũng có thể thiết lập như sau:
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map" android:layout_width="match_parent" android:layout_height="match_parent" class="com.google.android.gms.maps.SupportMapFragment" >
</fragment>
Bạn để ý : class=”com.google.android.gms.maps.SupportMapFragment”
Quan2708@gmail.com
120 Học Lập trình ứng dụng Android|
Ta có thể thực hiện tùy chỉnh GoogleMap thông qua đối tượng GoogleMapOptions:
MapFragment.newInstance(GoogleMapOptions)
MapView(Context, GoogleMapOptions)
3) Thiết lập Đồ họa trên Google Map:
-Lớp Marker:
Lớp này được xây dựng sẵn cho việc sử dụng định vị tọa độ trên bản đồ, hiển thị thông tin địa điểm
và tương tác với người dùng:
Ví dụ dưới đây Tui lấy Kinh độ và vĩ độ của Trung Tâm Tin Học ĐH Khoa Học tự nhiên (cơ sở 357
Lê Hồng Phong)
LatLng TTTH_KHTN = new LatLng(10.763181, 106.675664); MarkerOptions option=new MarkerOptions(); option.position(TTTH_KHTN); option.title("Trung tâm tin học ĐH KHTN").snippet("This is cool"); option.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE)); option.alpha(0.8f); option.rotation(90); Marker maker = map.addMarker(option); maker.showInfoWindow(); map.moveCamera(CameraUpdateFactory.newLatLngZoom(TTTH_KHTN, 15));
Nếu bạn thắc mắc làm sao lấy được kinh độ vĩ độ đúng như vậy thì có thể vào google Maps, tìm
đúng địa điểm và nhấn chuột phải vào địa điểm đó/ chọn What is here:
Quan2708@gmail.com
121 Học Lập trình ứng dụng Android|
Ta tùy chỉnh Marker bằng cách các thông số:
• Position
• Title
• Snippet
• Draggable
• Visible
• Anchor
• Icon
InfoWindow: được thể hiện phía trên đối tượng Marker thể hiện các thông tin cần thiết về vị trí
đang định vị.
Chỉ một đối tượng InfoWindow hiển thị ở một thời điểm và có thể điều khiển thông qua hai phương
thức:
Quan2708@gmail.com
122 Học Lập trình ứng dụng Android|
showInfoWindow()
hideInfoWindow()
Để tùy chỉnh InfoWindow trong lớp GoogleMap hỗ trợ giao diện InfoWindowAdapter bao gồm 2
phương thức:
getInfoWindow(Marker)
getInfoContents(Marker)
Ta gọi phương thức setInfoWindowAdapter để thiết lập InfoWindow cho đối tượng GoogleMap
Hình ví dụ mẫu:
Quan2708@gmail.com
123 Học Lập trình ứng dụng Android|
Ngoài ra Google Maps API cung cấp các giao diện cho phép bắt lại các sự kiện tương với Marker và
InfoWindow:
• OnMarkerClickListener
• OnMarkerDragListener
• OnInfoWindowClickListener
Ta cũng cần chú ý vì load Map có thể mất nhiều thời gian nên cần có ProgressBar để hiển thị cho
người sử dụng không phải thắc mắc, thường ta dùng ProgressDialog để hiển thị trong thời gian chờ
chương trình hoàn tất load Map. Ta có thể xử lý được việc hoàn tất load Map qua sự kiện sau:
Quan2708@gmail.com
124 Học Lập trình ứng dụng Android|
map.setOnMapLoadedCallback(new OnMapLoadedCallback() {
@Override
public void onMapLoaded() { // TODO Auto-generated method stub
//Xử lý ở đây nầy
Log.i("MAP LOADED", "END"); } });
Như vậy Tui đã giới thiệu xong Google Maps Android API, các bạn có thể tham khảo thêm tại
linkhttps://developers.google.com/maps/documentation/android/
Quan2708@gmail.com
125 Học Lập trình ứng dụng Android|
Google Maps Android API – phần 2
Trong bài tập này Tui sẽ hướng dẫn các bạn cách đưa Google Map vào ứng dụng Android của mình như
thế nào, có nhiều bước khác nhau để sử dụng, ở đây Tui tạm liệt kê theo thứ tự như sau:
Bước 1:
Kiểm tra hệ thống đã có cài đặt gói Google API và Google Play Service chưa? nếu chưa có thì cần
cài đặt.
Kiểm tra như sau: Mở cửa sổ Android SDK Manager lên:
Quan2708@gmail.com
126 Học Lập trình ứng dụng Android|
Bạn quan sát hình trên xem có Google APIs tương ứng với các version hay chưa (tùy bạn cài đặt,
không nhất thiết phải giống như hình Tui chụp). Tiếp theo kéo xuống mục Extras để kiểm tra Google
Play Service:
Quan2708@gmail.com
127 Học Lập trình ứng dụng Android|
Nếu nó chưa được cài đặt thì bạn phải cài đặt cho đầy đủ.
Khi cài đặt thành công thì bạn có thể tìm thấy nó ở đây
“..\sdk\extras\google\google_play_services\libproject\google-play-services_lib”:
Quan2708@gmail.com
128 Học Lập trình ứng dụng Android|
Bước 2:
– Tạo máy Ảo có khả năng chạy được Google Map:
Quan2708@gmail.com
129 Học Lập trình ứng dụng Android|
Như bạn thấy máy Tui có Google APIs từ 17->21, bạn tạo máy ảo với một trong nhóm này để nó có
thể chạy được với Google Map. Chú ý là bạn không cần thiết phải lấy bản 21 nhé, ở đây Tui lỡ tải
về rồi nên chụp cho nó màu mè thôi. Bạn chạy với bản 19 cũng rất Ok rồi. Bản 21 phải yêu cầu bật
tính năng ảo hóa nên chưa chắc máy của bạn chạy được.
Quan2708@gmail.com
130 Học Lập trình ứng dụng Android|
Bước 3:
Import thư viện google-play-services_lib ở Bước 1 vào Eclipse. Bước này bạn nên copy đường
dẫn rồi dán vào cửa sổ import cho lẹ nhé:
Sau đó Import Project này vào Elipse như sau:
Quan2708@gmail.com
131 Học Lập trình ứng dụng Android|
Vào menu File/ Chọn Import:
Màn hình Import Project hiển thị ra như bên dưới, ta chọn Android/Existing Android Code into
Workspace:
Quan2708@gmail.com
132 Học Lập trình ứng dụng Android|
Bấm next để tiếp tục:
Quan2708@gmail.com
133 Học Lập trình ứng dụng Android|
Root Directory: Bạn dán đường dẫn đã copy lúc nãy vào đây rồi nhấn phím Enter nó sẽ hiển thị ra
Google-play-service_lib ở trong mục Projects.
Copy projects into workspace: Bạn nhớ tick vào đây.
Sau đó nhấn nút Finish để kết thúc quá trình Import:
Quan2708@gmail.com
134 Học Lập trình ứng dụng Android|
Bước 4:
Tạo Project Android tên “LearnGoogleMap” sử dụng Google Map để tham chiếu tới Google Play
Service tạo ở bước 3.
Sau khi tạo Project LearnGoogleMap xong thì nhấn chuột phải vào nó chọn Properties:
Quan2708@gmail.com
135 Học Lập trình ứng dụng Android|
Màn Properties hiển thị ra ta chọn Android/ chọn nút Add trong mục Library:
Quan2708@gmail.com
136 Học Lập trình ứng dụng Android|
Khi bấm nút Add–> màn hình sau xuất hiện, ta chọn google play service:
Quan2708@gmail.com
137 Học Lập trình ứng dụng Android|
Bấm OK để đồng ý tham chiếu, ta xem kết quả:
Quan2708@gmail.com
138 Học Lập trình ứng dụng Android|
Bước 5:
Cấu hình để sử dụng Google Map trong ứng dụng LearnGoogleMap:
– Ta cần tìm chuỗi SHA1 để tạo API KEY sử dụng Google map trước, để có SHA1 ta làm như sau:
Mở màn hình Command Line lên, copy và gõ lệnh sau (không sửa gì nhé):
Quan2708@gmail.com
139 Học Lập trình ứng dụng Android|
keytool -list -v -keystore “%USERPROFILE%\.android\debug.keystore” -alias androiddebugkey -
storepass android -keypass android
Từ màn hình Command line, ta dán lệnh trên vào:
Nhấn Enter và có kết quả SHA1 như sau:
Ta sao chép SHA1 được cung cấp ở trên.
Ngoài ra Eclipse đã hỗ trợ cho chúng ta cách lấy SHA1 vô cùng dễ òm như sau:
Quan2708@gmail.com
140 Học Lập trình ứng dụng Android|
Vào menu Windows/Chọn Preference:
Bạn copy luôn chuỗi SHA1 đó, chú ý là chuỗi này tương ứng với mỗi cấu hình máy là khác nhau, khi
đưa lên Google project cùng với Package nó sẽ tạo ra API KEY khác nhau và duy nhất.
Tiếp theo bạn vào https://code.google.com/apis/console để lấy API KEY dựa theo SHA1 được cung
cấp ở trên.
Bạn chú ý là API KEY được tạo ra dựa trên sự kết hợp giữa SHA1 và package mà bạn tạo ra trong
Android. ở Project trên Package tui như sau:
Quan2708@gmail.com
141 Học Lập trình ứng dụng Android|
“tranduythanh.com.learngooglemap” nó sẽ kết hợp với SHA1 để tạo ra API KEY. Như vậy nếu bạn
đặt tên theo package nào thì phải theo package đó nha.
Kích hoạt Google MAP Android API V2 lên (tùy vào version khác nhau mà Google có thể đổi giao
diện khác chút xíu, miễn sao bạn nhìn thấy nó là OK):
– Bạn vào mục API, kéo xuống tìm Google Máp Android API v2 để bật ON nó lên:
Quan2708@gmail.com
142 Học Lập trình ứng dụng Android|
Bật xong sẽ thấy:
Sau đó vào mục Credentials/ chọn Create New Key:
Quan2708@gmail.com
143 Học Lập trình ứng dụng Android|
Khi bấm vào Create New Key màn hình sau xuất hiện:
Ở màn hình trên bạn chọn Android Key, màn hình tiếp theo xuất hiện:
Quan2708@gmail.com
144 Học Lập trình ứng dụng Android|
Sau khi bấm Create, ta có kết quả sau:
– Vậy là ta đã có API KEY.
Quan2708@gmail.com
145 Học Lập trình ứng dụng Android|
– Ta tiến hành sửa AndroidManifest như sau:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="tranduythanh.com.learngooglemap"
android:versionCode="1"
android:versionName="1.0" >
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"
/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="19" />
<application
Quan2708@gmail.com
146 Học Lập trình ứng dụng Android|
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyAs7FEF1RxuoSat_oHITBirDKagx2nQKDM" />
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Tiếp theo tiến hành chỉnh sửa activity_main.xml:
Quan2708@gmail.com
147 Học Lập trình ứng dụng Android|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="tranduythanh.com.learngooglemap.MainActivity" >
<fragment
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.MapFragment"
/>
</LinearLayout>
Coding java Ta không sửa gì hết nhá (Tức là cứ để mặc định, chỉ sửa lại mỗi Layout XML mà thôi.
Sau khi sửa xong ta tiến hành chạy Ứng Dụng, bạn sẽ thấy Google Map hiển thị trong ứng dụng. Dĩ
nhiên là chỉ mới hiển thị cho ta ngó đỡ ghiền chứ chưa làm được gì cả:
Quan2708@gmail.com
148 Học Lập trình ứng dụng Android|
Như vậy đến đây các bạn đã biết cách đưa Google Map ra ứng dụng, bạn cần hiểu rõ từng bước để
tránh sai sót. Phải nhớ bước lấy SHA1, API KEY, bước cấu hình Manifest và layout có sử dụng
class=”com.google.android.gms.maps.MapFragment”
Bài tiếp theo Tui sẽ hướng dẫn các bạn cách tương tác với Google Map
Bạn có thể tải source code mẫu ở đây (dĩ nhiên bạn không thể nào chạy trên máy của bạn được) vì
nó lệ thuộc vào API KEY, mà API KEY lại lệ thuộc vào SHA1 và package…. do đó khi bạn tải về thì
phải làm lại các bước để lấy đúng API KEY theo cấu hình trên máy của
bạn: http://download939.mediafire.com/aykl9wqptuwg/9b9fz5c36yw025h/LearnGoogleMap.rar
top related