Showing posts with label Android Cơ bản. Show all posts
Showing posts with label Android Cơ bản. Show all posts

Monday, October 5, 2015

Viết ứng dụng sử dụng Google Translate cho Android

By With 2 comments :
Trong bài này. Mình hướng dẫn cách tạo một ứng dụng dịch văn bản sử dụng Google Translate trên Android. Tùy mỗi Project thì cách sử dụng khác nhau. Bài này mình chỉ làm một cách đơn giản nhất là chuyển từ ngôn ngữ bất kỳ sang tiếng Việt và phát âm nó. Hiện tại Google Translate API phải trả phí nên dùng cách này đơn giản, không tốn phí.

1. Dịch. Tạo một class Translate
Phải chạy dưới 1 thread khác để tránh bị lỗi trong quá trình dịch. ở đây mình extends AsyncTask và các biến
toLang: ngôn ngữ cần dịch ra,
fromLang là ngôn ngữ đầu vào.
Các biến này dạng String đều sử dụng dạng ký tự đại diện do Google quy định ví dụ như
Việt Nam: vi
Nhật: ja
Anh: en
Hàn: ko
Trung: zh-CN
Hoa kỳ: hy
....


2. Hàm phát âm thanh.

Trong đó đối số
text: là chữ bạn muốn đọc,
lang là muốn đọc dạng ngôn ngữ nào. Sử dụng ký tự đại diện do google quy định. Giống như ví dụ ở đầu bài.
3. Code full của MainActivity.java

4. Code activity_main.xml
Giao diện gồm một ô nhập và 2 nút, 1 nút dịch và 1 nút đọc

Đặc biệt là không quên thêm permission INTERNET vào AndroidManifest.xml

xem video mô tả Project hoặc Download

Mọi thắc mắc hoặc góp ý đừng ngại comment bên dưới nha.
Read More

JSON parse trong lập trình Android

By With 2 comments :
Trong bài này, hình hướng dẫn lấy và phân tích dữ liệu của một tập JSON trên Internet

1. JSON là gì

JSON là viết tắt của JavaScript Object Notation. Nó là một định dạng trao đổi dữ liệu độc lập và là giải pháp thay thế tốt nhất cho XML. Chương này giải thích làm thế nào để phân tích các tập tin JSON và trích xuất thông tin cần thiết từ nó.

Android cung cấp bốn lớp khác nhau để thao tác dữ liệu JSON. Các lớp học này JSONArray, JSONObject, JSONStringer và JSONTokenizer. Trong qua trình sử dụng, thường sử dụng 2 lớp JSONArray, JSONObject để phân tích dữ liệu.

Cấu trúc cơ bản của một json

hoặc

Link: https://raw.githubusercontent.com/locntid/RequestJSON/master/app/src/main/res/assets/demo.json

2. Cấu trúc

Array([) : Trong một tập tin JSON, khung vuông ([) đại diện cho một mảng JSON
Objects({): Trong một tập tin JSON, khung nhọn ({) đại diện cho một đối tượng JSON
Key: Một đối tượng JSON chứa một chìa khóa mà chỉ là một chuỗi. Cặp khóa / giá trị tạo nên một đối tượng JSON
Value: Mỗi khóa có giá trị mà có thể là String, Integer hoặc Double...

3. Phân tích

Đầu tiên bạn tạo một đối tượng JSON

Tiếp theo tùy giá trị mà mình lấy

4. Bài mẫu

a. User.java
Tạo một model User

b. UserAdapter.java
Tạo một Adapter để hiển thị User lên listView

c. FetchJSON.java
File này dùng để kết nối và đọc và chuyển dữ liệu từ một link file JSON

d. MainActivity.java
Xử lý và hiển thị

e. activity_main.xml

f. list_item.xml

g.AndroidManifest.xml
thêm permission INTERNET

h. Kết quả hiển thị


Có thắc mắc hay góp ý không ngại comment bên dưới nhé. Dowload Project tham khảo
Read More

Tuesday, April 14, 2015

Android Cơ Bản - Ứng Dụng Quản Lý Sinh Viên P2

By With No comments :
Ở phần trước bạn đã tìm hiểu sơ lược về Android rồi. Các bước chuẩn bị, phân tích yêu cầu đã làm rồi và bạn đã biết ứng dụng mình chuẩn bị viết gồm những chức năng gì, để làm gì rồi. Bài hôm nay mình sẽ hướng tới thiết kế giao diện cho ứng dụng, hiển thị những thành phần giao diện(Phần hôm nay chưa xử lý nền bên dưới gì hết).
1. Tạo Project
Nếu ai chưa biết tạo Project thì xem lại bài này
Mình tạo Project
- Tên: QuanLySinhVien.
- package: tutsmodel.info.quanlysinhvien
- target: 19
Sau khi tạo xong đợi một lúc để nó laod những bộ thư viện lên. Để thiết kế được giao diện thì bạn mở file res/layout/activity_main.xml. File xml nằm trong thư mục layout là dùng để kết nối những view được định nghĩa sẵn với file Java. Thực chất khi chạy một ứng dụng android thì File Java chạy và load thành phần trong file xml lên màn hình.
Bạn để ý vị trí số 1:
Hiển thị các View được sdk định nghĩa sẵn. Giờ mình chỉ việc sử dụng bằng cách chọn 1 Button kéo vào vị trí 2 là tạo được một Button.
Giờ mình giải thích một số thành phần phổ biến được hiển thị ở vị trí 1 nha:
Trong thanh này các thành phần được phân ra từng nhóm rõ ràng như:
Form widgets: các thành thao tác với form
- Button: là một cái nút khi click vào sẽ thực hiện một công việc được định nghĩa sẵn cho button đó
- Textview: như một cái nhãn (Giống như label trong Java) dung để hiển thị dạng chuôi lên màn hình.
- Thành phần lực chọn như Spinner, Radio button, chẹckbox.
TextField là một cái ô để nhập ký tự, chuỗi, trong đó có nhiều định dạng cho ta lựa chọn như nhập Email, Number, Text, password...
Layout: chứa các định dạng layout như
- LinearLayout: đây là dạng layout được sử dụng phổ biến nhất, cho phép sắp xếp các thành phần theo chiều dọc hoặc chiều ngang.
- Tablelayout: Cho phép sắp xếm các thành phần theo cột và dòng.
- Gridlayout: Layout dùng để hiển thị các thành phần theo dạng lưới, như table nhưng thành phần không nhất thiết được sắp xếp theo dòng và cột.
- RelativeLayout: Vị trí của một thành phần phụ thuộc vào những thành phần xung quanh. Ví dụ khi kéo thả một Button vào trong đó thì nó sẽ ghi nhận khoảng cách từ Button đến mép trái, mép phải.. của ứng dụng, Kéo thả tiếp một Button khác thì button sau này sẽ ghi nhận vị trí là khoảng cách đến Button 1, đến mép trái, mép phải...
Composite: Chứa hỗn tạp nhiều thành phần, trong nhóm này mình chỉ để ý đến
- ListView: Hiển thị danh sách theo dạng từng dòng, mỗi dòng là một nội dung hiển thị (Một đối tượng)
- GridView: hiển thị danh sách theo dạng lưới, mỗi dòng (hàng) có nhiều nội dung (Nhiều đối tượng) khác nhau.
Images & Media
- ImageView: Hiển thị hình ảnh từ thẻ nhớ hoặc từ thử mục res/drawable
Đó là những cái sử dụng thường xuyên nhất trong thiết kế giao diện.
SDK phân từng từng nhóm như thế là muốn cho chúng biết mỗi thành phần trong nhóm có cách sử dụng, tương tác gần giống nhau. Thuộc tính của chúng cũng gần giống nhau. Cho nên khi bạn biết sử dụng 1 thành phần trong nhóm thì có thể ứng dụng cách đó cho những thành phần khác trong nhóm đó. (Có khác vài chỗ nhưng không đáng kể)
Giới thiệu sơ sơ thế là đủ sử dụng rồi. Giờ mình bắt đầu vào thực hành rồi. Mình bắt đầu cho "Ứng dụng Quản lý sinh viên" từ thành phần listView. Những thành phần kia tìm hiểu phần phía sau.
Đầu tiên chọn nhóm Composite giữ vào thành phần listView kéo vào vị trí số 2. Vì ListView chưa có nội dung hiển thị nên bạn sẽ không thấy được. Muốn biết đã có listView chưa bạn nhìn vào
Nếu hiển thị như thế là có rồi. Chưa thì kéo thả lại.
Bạn muốn xem code nó tạo ra như thế nào thì ở vị trí thứ 3 hình 1 chọn tag activity_main.xml\ là sẽ thấy.
Hiện tại là listview chưa có nội dung nên khi chạy trên máy ảo bạn cũng chẳng thấy gì. Thế nên bước tiếp theo mình sẽ đổ dữ liệu lên listview. Bạn mở file Main.java (MainActivity.java) nằm ở đường dẫn src/tutsmodel.info.quanlysinhvien có nội dung mặc định như sau (Có thế thấy một số thành phần như OptionMenu...tùy theo lúc đầu bạn chọn lay out nào. Mình chọn Empty layout)
package tutsmodel.info.quanlysinhvien;

import android.app.Activity;
import android.os.Bundle;

public class Main extends Activity {

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
 }
}
trong đó bạn thấy có hàm onCreate. Hàm này sẽ là hàm chạy đầu tiên của úng dụng. Trong hàm này bạn thấy có phương thức setContentView(R.layout.activity_main); chính là phương thức để chọn giao diện của file xml nào để load lên màn hình.
Giới thiệu thế thôi. Giờ bắt đầu load dữ liệu lên listview nè.
Đầu tiên bạn tạo một cái mảng Array.
String name[] = {"Java","Android","PhoneGap","Node Js","TutsModel"};
đặt trong hàm onCreate sau phương thức setContentView
Vì trên File Xml có nhiều thành phần nên trước khi thao tác với thành phần nào thì bắt buộc phải xác định thành phần đó trên giao diện bằng phương thức findViewById(id) trước.
ListView list = (ListView) findViewById(R.id.listView1);
Với listView1 là id của list View.
bạn muốn biết thì chuyển qua tab code của file xml nhìn thấy dòng android:id="@+id/listView1" thì listView1 chính là id của ListView. Id này được quản lý bởi file gen/tutsmodel.info.quanlysinhvien/R.java

    
Thêm dòng lệnh sau. Dưới hoặc trên dòng lệnh tạo array nhưng bắt buộc phải nằm sau phương thức setContentView vì cứ tưởng tượng như thế này. Muốn biết được cái tủ lạnh nằm ở vị trí nào trong nhà thì mình phải vào trong nhà trước mới xác định được. Cái này cũng thế. Muốn xác định được thành phần giao diện thì phải load cái file layout xml chứa thành phần đó trước đã.
Tạo Adapter và kết nối Adapter với listView
// tao adapter
 ArrayAdapter< string > adapter = 
    new ArrayAdapter< string >(this, android.R.layout.simple_list_item_1,name);
 // dat adapter cho list
 list.setAdapter(adapter);
trong đó android.R.layout.simple_list_item_1 là một dạng layout mà SDK cung cấp.
Adapter như một công cụ chuyển đổi kiểu dữ liệu để sử dụng cho phù hợp.
this context (vung mình đang thao tác). Mình đang thao tác ở file Main.java chính là đang thao tác trên nó nên đưa vào this là nó hiểu
name chính là mảng name mình tạo ở trên. Thế là xong phần đưa dữ liệu lệnh listView. Giờ bạn nhìn lại code đầy đủ

package tutsmodel.info.quanlysinhvien;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class Main extends Activity {

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  // tao mang du lieu de hien thi len listview
  String name[] = {"Java","Android","PhoneGap","Node Js","TutsModel"};
  // xac dinh control tren giao dien
  ListView list = (ListView) findViewById(R.id.listView1);
  // tao adapter ket noi array voi listview
  ArrayAdapter< string > adapter = 
    new ArrayAdapter< string >(this, android.R.layout.simple_list_item_1,name);
  // dat adapter cho list
  list.setAdapter(adapter);
 }
}
Cuối cùng Chạy thử và kết quả
Bài này tìm hiểu đến đây thôi. Bài sau chúng ta tiếp tục tìm hiểu về giao diện
Source code: Download
Read More

Monday, April 13, 2015

Android Cơ bản - Ứng dụng quản lý sinh viên

By With No comments :

Mình sẽ hướng dẫn về lập trình Android cơ bản thông qua ứng dụng hoàn chỉnh. Mình mong muốn thông qua ứng dụng này bạn sẽ hiểu hết từng thành phần cơ bản nhất cấu tạo nên một ứng dụng Android.
Sau khi bạn theo hết bài này sẽ tự tạo cho mình một ứng dụng Android đơn giản và sẽ hỗ trợ cho những bài học Android nâng cao sau này.








I. Chuẩn bị

1. Cài đặt Java

Muốn lập trình được ứng dụng Android máy bạn phải cài Java (Ubuntu | Windows) vì code viết bằng ngôn ngữ Java mà.

2. Cài Plugin Android cho Eclipse

Giờ tạo môi trường để lập trình (viết code). Ai chưa cài thì xem lại bài này Hướng dẫn cài plugin cho eclipse. Trong bài đó mình hướng dẫn cài trên cả 2 hệ điều hành Linux (Ubuntu) và Windows.

3. Tạo máy ảo android trên máy tính.

Việc lập trình Android sẽ không làm được nếu không có mỗi trường để chạy file Android. Nếu bạn có máy thật thì sẽ tiện cho lập trình hơn nhưng ít ai sử dụng máy thật trong lúc lập trình cả. Vì cắm lâu dẫn đến chai pin, nóng máy... và khó debug hơn. Chúng ta có thể sử dụng máy ảo SDK cung cấp sẽ tiện lợi hơn. Có thể tham khảo bài này .

II. Tổng quan

Nếu xong bước chuẩn bị. Các bạn có thể bắt đầu vào chương trình chính là viết một ứng dụng cơ bản quản lý sinh viên (Không database). Giờ bắt tay vào phân tích trước. Khi bước vào lập trình thì có một số thói quen nên tập là phân tích trước khi làm, quy tắc đặt tên biến, tên hàm sao mà có thể mọi người nhìn vào có thể hiểu được code bạn viết cái gì tiện cho quá trình làm việc nhóm, trong việc bắt lỗi và quá trình quá trình phát triển sau này.
Yêu cầu trước tiên cần nhất để viết ứng dụng cho thiết bị di động Android là bạn phải biết về ngôn ngữ Java (nắm vững những cái cơ bản nhất như khai báo biến, khai báo hàm, OOP....). Khi bạn nắm được Java cơ bản thì việc học Lập trình Android là một chuyện không phức tạp và có thể phát triển sau này.
Không khuyến cáo các bạn tìm hiểu trực tiếp lập trình Android mà không qua học Java, làm cũng được nhưng khi phát triển dự án lớn thì sẽ không làm được.

Nếu đã đạt yêu cầu đó thì giờ bắt đầu phân tích đề:
"Ứng dụng quản lý sinh viên (không database)".
Ứng dụng: Một cái công cụ dùng cho một việc nào đó
Quản lý là  quá trình điều khiển và dẫn hướng tất cả các bộ phận của một tổ chức. Quá trình này có thể thêm, thay đổi hoặc giảm thành viên trong tổ chức.
Sinh viên: Một đối tượng trình độ học vấn thuộc cao đẳng, đại học trở lên có tên, giới tính, năm sinh, lớp...
Tóm lại là mình sẽ viết một ứng quản lý thông tin của sinh viên là mình có thể thêm thông tin sinh viên, xóa thông tin sinh viên, sửa thông tin sinh viên của một sinh viên, của nhiều sinh viên và hiển thị danh sách được vừa được thêm vào.
Mới bài đầu mình phân tích tới đây thôi. Bài sau bắt sẽ học về thiết kế giao diện và các thành phần cấu tạo nên một giao diện cho ứng dụng.
Read More

Saturday, April 11, 2015

Tạo ứng dụng Android đầu tiên

By With No comments :
Hôm nay mình hướng dẫn tạo ứng dụng Android đầu tiên cho những người mới bắt đầu học lập trình Android.
Đầu tiên đảm bảo bạn đã cài Plugin SDK cho Eclipse, nếu chưa vui lòng vào tham khảo bài này: Cài đặt Plugin Android cho eclipse

Sau khi mở eclipse lên thành công. Chọn File > Project > Android

Chọn Android Application Project > Click Next.
1. Tên ứng dụng dung hiển thị trên tabbar, trên thiết bị.
2. Tên Project (Không có khoảng trắng)
3. Gói trong Project dùng để quản lý file 1 cách dễ dàng hơn(tính đóng gói của Java)
4. Cài đặt phiên bản Android để sử dụng ứng dụng, build ứng dụng
- Trong đó có Phiên bản Android thấp nhất có thể sử dụng
- Phiên bản sử dụng tốt và biên dịch trên phiên bản nào, theme của ứng dụng...
Click 2 lần Next để tiếp tục
Phần này là chọn Icon hiển thị. Bạn có thể sử dụng Icon khác như đưa từ ngoài vào, hoặc tạo bằng chữ...
Click Next để tiếp tục
Chọn giao diện hiển thị. Ở đây được cung cấp cho chúng ta một số giao diện cơ bản nhất để tìm hiểu chứ ít sử dụng do xấu quá :). Click Next để tiếp tục
Click Finish đợi một lúc load thư viện xong việc tạo Project

  1. Quản lý Project, các package của Project
  2. Các view như Button, TextView, EditText... sử dụng để tạo giao diện được thiết kế sẵn.
  3. Giao diện console logcat. Cái này cực kỳ quan trọng trong lập trình. Vì nhờ nó mà việc tìm lỗi dễ dàng hơn.
  4. Cái như một giao diện khác của số 8. Sử dụng những View không thể thao tác trên vị trí số 8 được. Properties là tùy chọn thuộc tính cho từng View ta chọn
  5. Thanh này hiển thị những file mà ta đang thao tác trên đó. Mốn mở file nào thì click vào tag tên file đó.
  6. Cái này dùng khi thiết kế giao diện để chuyển từ giao diện kéo thả sang dạng thiết kế bằng Code
  7. Giống phím tắt để sử dụng chức năng mở Android SDK Manager, Device Manager, Run, Debug...
  8. Vị trí này sử dụng trong thiết kế, muốn thêm thành phần nào thì kéo View đó thả vào đây là tạo được một view
Trong đó:

  1. src: Chứa file, các gói Java viết bằng.
  2. assets: chứa những tài nguyên như db (databse xây dựng sẵn), hình ảnh, nhạc...
  3. bin: Chứa những thông tin của gói ứng dụng đã build sẵn, sau khi buil file apk nằm trong thư mục này.
  4. libs: Thư mục chứa những bộ thư viện cần trong quá trình lập trình.
  5. res: trong thư mục resource chứa hình ảnh, icon, layout, sharp...
  6. res/drawable : chứa hình media, icon ứng dụng...
  7. res/layout: chứa những giao diện thiết kế sẵn.
  8. res/values: chứa string.xml - quản lý những đoạn text trong ứng dụng, style.sml chứa stylle của app, của view.
  9. AndroidMainifest.xml Thư mục nay như giấy khai sinh, sơ yếu lý lịch của ứng dụng, chưa thông tin như tên, phiên bản, quyền hạn...
  10. project.properties: xác định những đường dẫn đến những gói thư viện, hoặc thông tin phiên bản để build...
Đã giới thiệu sơ qua từng bộ phận. Giờ bắt đầu chạy thử Project mới tạo.

Mở máy ảo lên. Chưa tạo thì Tham khảo qua bài này Hướng dẫn tạo máy ảo Android trên máy tính
Giờ mở máy ảo lên. Tiếp theo Click Chuột phải vào Tên Project (nằm ở vị trí số 1) > Run as... > Android Application
Đợi một lúc build xong sẽ hiển thị như thế này
Thế là xong việc tạo ứng dụng đầu tiên. Chúc bạn thành công.
Read More

Hướng dẫn tạo máy ảo Android

By With No comments :
Nếu bạn không có thiết bị Android mà việc lập trình Android sẽ không được nếu thiếu môi trường chạy ứng dụng. Hôm nay mình hướng dẫn tạo máy ảo trên máy tính để cho việc debug, run android một cách dễ dàng hơn.
Đầu tiên là phải cài đặt Plugin Android cho Eclipse trước. Xem bài cài đặt Plugin Android cho Eclipse nếu bạn chưa cài.
Sau khi cài đặt xong click vào biểu tượng sẽ mở lên một cửa sổ
Tiếp theo click Create để tạo máy ảo mới. Sau đó chọn, cấu hình máy ảo
  1. Tên máy ảo
  2. Thiết bị cần mô tả theo
  3. Phiên bản Android
  4. Chọn loại CPU (có 2 loại ARM và Intel tùy lúc mình tải về chọn cái nào)
  5. Kiểu hiển thị màn hình. Màn hình ngang dọc, có bàn phím đi kèm hoặc không. Cái này bạn tự tìm hiểu chọn phù hợp.
  6. Camera trước và sau. Thường thì sử dụng Webcam của máy tính, laptop.
  7. Bộ nhớ Ram. Cho nhỏ nhỏ khoảng 512M là chạy mềm mại (tùy theo ram máy tính của bạn cho sao cho phù hợp).
  8. Bộ nhớ trong. Cho nhiều thì sẽ cài đặt được nhiều ứng dụng hơn. Tùy vào bộ nhớ máy bạn.
  9. Dung lượng thẻ nhớ.
Nếu mà 2,3,4 không hiển thị hoặc thiếu 1 trong 3 cái đó thì bạn xem thử mình đả tải máy ảo, phiên bản android về chưa. Có thể xem ở đây. Click vào để mở Android SDK Manager
Phiên bản nào cũng phải có tối thiểu phải có Platform + CPU(Intel hoặc ARM - Ở đây mình tải Intel).
Giờ bắt đầu mở máy ảo lên.
Click chọn máy ảo > Start > Lauch
Đợi một lúc (khá lâu) thì lên được giao diện giống thế này. Mình sử dụng Ubuntu việc Start chỉ mất khoảng 1 phút. Trên Windows thì có thể lâu hơn.Có thể cách thức hoạt động của Ubuntu với Android gần giống nhau.
Thế là xong. Việc tạo máy ảo như thế này thì trên Windows, Linux hoặc trên Mac OS đều như nhau.
Chú ý: Trên Linux có một số trường hợp không Start được máy ảo (Do sử dụng phiên bản 64bit) nên cách khắc phục như sau. Thực thi dòng lệnh dưới
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libncurses5:i386 libstdc++6:i386 zlib1g:i386
Sau đó khởi động lại eclipse (nếu đang mở).Chúc bạn thành công.
Read More
Copyright © 2014 TutsModel | All Rights Reserved