Tải bản đầy đủ (.doc) (28 trang)

bao cao lap trinh tihet bi di dong android

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.25 MB, 28 trang )

Báo Cáo TL Androd – Nhóm 10

MỞ ĐẦU
Hiện nay, tiếng Nhật được coi là ngôn ngữ khó nhất nhì
trên thế giới. Hàng triệu người từ các nền văn hóa khác nhau
đều nỗ lực học tiếng Nhật mỗi ngày. Ở Việt Nam, tiếng Nhật
cũng đã chiếm được vị trí quan trọng kể từ khi đất nước bắt đầu
thực hiện chính sách mở cửa hội nhập ra khu vực và thế giới. Ở
nhiều lĩnh vực khác nhau trong xã hội như kinh tế, chính trị,
khoa học, du lịch, vv... đều rất cần những người có trình độ
tiếng Nhật giỏi. Người ta học và sử dụng tiếng Nhật với nhiều
mục đích khác nhau để đáp ứng nhu cầu giao tiếp ngày càng lớn
trong xã hội, để kiếm được công việc tốt, để được thăng chức,
hay để giành được cơ hội đi du học và làm việc ở nước ngoài.
Cùng với đó, sự phát triển của công nghệ di động đã bùng nổ
trong vài năm qua. Các thiết bị cầm tay đã trở nên mạnh mẽ và
rất phổ biến. Trong vài năm trở lại đây, hệ điều hành Android ra
đời và trở thành nền tảng điện thoại thông minh phổ biến nhất
thế giới, với sự kế thừa những ưu việt của các hệ điều hành ra
đời trước và sự kết hợp của nhiều công nghệ tiên tiến nhất hiện
nay. Những ưu điểm dễ thấy nhất của Android chính là khả năng
tùy biến nhanh chóng, dễ làm quen, ứng dụng hỗ trợ phong phú,
tương thích với đa cấu hình phần cứng của các nhà sản xuất. Dù
đã hay chưa từng sử dụng smartphone Android thì bạn cũng
không cần quá lo lắng về việc thay đổi. Hầu như tất cả những
smartphone sử dụng hệ điều hành Android đều rất dễ sử dụng,


Báo Cáo TL Androd – Nhóm 10

đơn giản trong tùy biến theo sở thích cá nhân, cũng như có rất


nhiều ứng dụng để thỏa mãn nhu cầu của từng người dùng.
Đồng thời Android có mã nguồn mở đã cho phép các nhà phát
triển thiết bị, mạng di động và các lập trình viên được điều chỉnh
và phân phối Android một cách tự do. Bởi vậy trước nhu cầu và
lợi thế đó, nhóm em quyết định nghiên cứu và xây dựng ứng
dụng: Xây dựng ứng dụng hỗ trợ học tiếng Nhật trên thiết bị
di động chạy nền tảng Android.


Báo Cáo TL Androd – Nhóm 10

CHƯƠNG 1: TỔNG QUAN
1.Sơ lược về tiếng nhật
Tiếng Nhật Bản, hay tiếng Nhật (日本語 (にほんご) Nihongo?, Nhật Bản ngữ) là một
ngôn ngữ được hơn 130 triệu người sử dụng ở Nhật Bản và những cộng đồng dân di
cư Nhật Bản khắp thế giới. Nó là một ngôn ngữ chắp dính(khác biệt với tiếng
việt vốn thuộc vào loại ngôn ngữ đơn lập phân tích cao) và nổi bật với một hệ thống
các nghi thức nghiêm ngặt và rành mạch, đặc biệt là hệ thống kính ngữ phức tạp thể
hiện bản chất thứ bậc của xã hội Nhật Bản, với những dạng biến đổi động từ và sự kết
hợp một số từ vựng để chỉ mối quan hệ giữa người nói, người nghe và người được nói
đến trong cuộc hội thoại. Kho ngữ âm của tiếng Nhật khá nhỏ, với một hệ thống ngữ
điệu rõ rệt theo từ.
Từ vựng Nhật chịu ảnh hưởng lớn bởi những từ mượn từ các ngôn ngữ khác. Một số
lượng khổng lồ các từ vựng mượn từ tiếng Hán, hoặc được tạo ra theo kiểu của tiếng
Hán, qua giai đoạn ít nhất 1.500 năm. Từ cuối thế kỷ 19, tiếng Nhật đã mượn một
lượng từ vựng đáng kể từ hệ ngôn ngữ Ấn-Âu, chủ yếu là tiếng Anh. Do mối quan hệ
thương mại đặc biệt giữa Nhật Bản và Hà Lan vào thế kỷ thứ 17, tiếng Hà Lan cũng
có ảnh hưởng, với những từ như bīru (từ bier; "bia") và kōhī (từ koffie; "cà phê").

2. Sự thông dụng của tiếng nhật

 Số người sử dụng
Ngày nay có khoảng một trăm triệu người nói tiếng Nhật trên khắp thế giới và con số này
ngày càng tăng lên. Tiếng Nhật là ngôn ngữ được sử dụng rộng rãi nhưng lại không thay thế các ngôn
ngữ khác, thay vào đó nó hỗ trợ các ngôn ngữ với các yếu tố sau:
 Là một trong 10 ngôn ngữ phổ biến nhất trên thế giới.
 Việt Nam tiếng nhật là ngôn ngữ phổ biến thứ 2 sau tiếng anh hơn 1.7 triệu người theo
học.
 Số lượng người Việt Nam sang nhật ngày càng tăng.

3. Lý do chọn đề tài:


Báo Cáo TL Androd – Nhóm 10
 Ứng dụng hỗ trợ đầy đủ tính năng của một chương trình học tiếng Nhật qua hội thoại
Minano nihongo.
 Phần mềm có thể nghe hội thoại,học từng câu một cách riêng biệt
 Xem từng câu theo nghĩa Kanji,hiragana,romaji,dịch tiếng việt.
=>Giúp người học dẽ dàng học tiếng nhật qua hội thoại hơn

4. Giới thiệu hệ điều hành Android
Android là một hệ điều hành chạy trên điện thoại di động được phát triển từ
nhân Linux. Được phát triển vào năm 2005 với một dự án cùng tên “Android”. Trong
một phần chiến lược của mình để lấn sâu vào lĩnh vực di động Google đã mua về toàn
bộ quá trình phát triển cũng như đội phát triển của Android.
Google phát hành Android dưới dạng mã nguồn mở và miễn phí, do đó bất cứ
ai muốn sử dụng đều có thể tải về mã nguồn Android đầy đủ. Hơn nữa các nhà cung
cấp (thường là những nhà phát triển phần cứng) có thể phát triển thêm phần mở rộng
và tùy biến cho Android để tạo những sản phẩm riêng biệt của họ so với sản phẩm của
những công ty khác. Điều này làm cho mô hình phát triển Android rất hấp dẫn và do
đó khơi dậy sự quan tâm của nhiều nhà cung cấp. Điều này rất phù hợp với các công

ty bị ảnh hưởng bởi hiện tượng này như là Iphone của Apple, một sản phẩm cực kì
thành công trong công cuộc cách mạng hóa ngành công nghiệp Smartphone. Các công
ty như SamSung, Motorola, SonyEricsson và một số những nhà sản xuất đã tìm được
một con đường mới để làm sống dậy sản phẩm của họ. Những nhà sản xuất này coi
Android như một giải pháp – họ sẽ tiếp tục thiết kế phần cứng của riêng mình và sử
dụng Android như một hệ điều hành chính.
5. Lược sử về Android
Android được phát hành phiên bản đầu tiên 11/11/2007, là một môi trường hệ
điều hành hoàn chỉnh dựa trên hệ điều hành nhân Linux V2.6. Lúc đầu, đích triển khai
đối với Android là lĩnh vực điện thoại di động, gồm các loại điện thoại thông minh và
các loại thiết bị điện thoại kiểu gập chi phí thấp. Tuy nhiên, phạm vi đầy đủ các dịch
vụ điện toán của Android và sự hỗ trợ chức năng phong phú của nó có tiềm năng mở
rộng ra ngoài thị trường điện thoại di động. Android còn có thể hữu ích đối với các
nền tảng và ứng dụng khác.


Báo Cáo TL Androd – Nhóm 10

Nền Android là sản phẩm của Open Handset Alliance (Liên minh thiết bị cầm
tay mở), một tập đoàn các tổ chức cùng hợp tác với nhau để xây dựng nên một loại
điện thoại di động tốt hơn. Tập đoàn do Google đứng đầu này gồm các nhà vận hành
(điện thoại) di động, các nhà sản xuất thiết bị cầm tay, sản xuất linh kiện, các nhà
cung cấp nền và giải pháp phần mềm và các công ty tiếp thị. Từ một quan điểm phát
triển phần mềm, Android trở thành trung tâm của thế giới mã nguồn mở và rất có tiềm
năng phát triển.
Thiết bị cầm tay có khả năng Android đầu tiên trên thị trường là thiết bị G1 do
HTC sản xuất và được bán trên T-Mobile. Nó trở nên sẵn có sau gần một năm đồn đại,
khi mà các công cụ phát triển phần mềm sẵn có duy nhất chỉ là một số bản phát hành
Bộ công cụ phát triển phần mềm (SDK) được cải tiến dần từng bước. Khi ngày phát
hành G1 gần đến, nhóm Android đã phát hành SDK V1.0 và các ứng dụng bắt đầu

vượt lên nhằm hướng tới nền tảng mới này.
Để kích thích đổi mới và phát triển các ứng dụng của Android, Google đã tài
trợ hai vòng cuộc thi “Các thách thức nhà phát triển Android”, và hàng triệu đô la đã
được đổ vào các ứng dụng dự thi hàng đầu. Vài tháng sau G1, Android Market được
phát hành, cho phép người sử dụng duyệt và tải về các ứng dụng trực tiếp vào điện
thoại của họ. Trong vòng 18 tháng, một nền di động mới đã chính thức có mặt trên thị
trường và sẽ là đối thủ cạnh tranh nặng ký của các nền di động phổ biến trước đó như
Symbian hay Window Mobile.
Android cung cấp khá đầy đủ các công cụ cơ bản và được thiết kế sao cho các
nhà phát triển có thể tận dụng tối đa lợi thế của thiết bị cầm tay để xây dựng nên các
ứng dụng thực sự thuyết phục. Họ có thể tạo một ứng dụng có thể gọi thực hiện các
chức năng lõi trong điện thoại như thực hiện cuộc gọi, gửi tin nhắn SMS, dùng
camera… hay chia sẻ thông tin cá nhân lên trang web chẳn hạn như thông tin liên lạc,
vị trí địa lí, lịch biểu… Các nhà phát triển còn có thể làm bất cứ việc gì trên thiết bị
Android bởi vì hệ thống Android giao tiếp thông qua các Intents – nó đơn giản là một
chuỗi mô tả một hành động nào đó


Báo Cáo TL Androd – Nhóm 10

ví dụ: “android.provider.Telephony.SMS_RECEIVED”. Android còn cung cấp
sẵn các dịch vụ định vị (và đây là một thế mạnh của Google) cùng với một tập các ứng
dụng về “Map” với các tính năng rất ấn tượng như dò đường, tính khoảng cách địa
điểm, tìm bạn… Ngoài ra còn có một số tính năng nổi bật khác như Animation và
đồng thời cũng hỗ trợ media-playback.
6. Nền tảng Android
Với khả năng rộng rãi của Android, sẽ rất dễ dàng nhầm lẫn nó với một hệ điều
hành máy tính để bàn. Android là một môi trường phân tầng, xây dựng trên nền của hệ
điều hành nhân Linux, và nó bao hàm nhiều chức năng phong phú. Hệ thống giao diện
người sử dụng gồm có:

 Cửa sổ
 Khung hình
 Các tiểu trình để hiển thị các phần tử phổ biến như các hộp biên soạn, danh
sách, danh sách thả xuống.
Android có nhiều tùy chọn kết nối, gồm WiFi, Bluetooth và dữ liệu không dây
qua một kết nối di động (như GPRS, EDGE và 3G, 4G). Một kỹ thuật phổ biến trong
các ứng dụng Android là liên kết tới Google Maps để hiển thị một địa chỉ trực tiếp
trong một ứng dụng. Việc hỗ trợ cho các dịch vụ dựa trên địa điểm (chẳng hạn như
GPS) và các dụng cụ đo gia tốc cũng có sẵn trong gói phần mềm Android, mặc dù
không phải tất cả các thiết bị Android được trang bị với các phần cứng cần thiết.
Ngoài ra còn có cả hỗ trợ máy ảnh(camera).


Báo Cáo TL Androd – Nhóm 10

Về mặt lịch sử, có hai lĩnh vực mà các ứng dụng di động đã gắng sức theo kịp
các đối tác máy tính để bàn là đồ họa/đa phương tiện và phương thức lưu trữ dữ liệu.
Android giải quyết thách thức về đồ họa bằng sự hỗ trợ dựng sẵn cho đồ họa 2D và
3D, gồm cả thư viện OpenGL. Gánh nặng lưu trữ dữ liệu được giảm nhẹ vì nền
Android có gồm cả cơ sở dữ liệu SQLite mã nguồn mở phổ biến. Hình 1.4 cho thấy
một khung hình đơn giản hóa về các tầng phần mềm Android.

Hình 1.4. Cấu trúc Android
7.Kiến trúc ứng dụng Android
7.1 Máy ảo Dalvik
Các ứng dụng Android được viết bằng ngôn ngữ lập trình Java và chúng chạy
trong một máy ảo (VM). Điều quan trọng phải lưu ý rằng VM không phải là một máy
ảo Java mà là máy ảo Dalvik (Dalvik Virtual Machine), một công nghệ mã nguồn mở.
Chiếc máy ảo này dựa trên việc đăng kí (register-based) và được thiết kế bởi Dan
Bornstein và một vài kĩ sư của Google. Thuật ngữ “register-based” đã nói lên sự khác

biệt giữa máy ảo Android với máy ảo JAVA thông thường. Tương tự như máy ảo
JAVA, đây cũng chỉ là một máy ảo thông dịch, nhưng thông dịch các file có định
dạng .dex (Dalvik Execute) – một định dạng giúp tối ưu bộ nhớ và khả năng lưu trữ
của máy ảo – Các máy ảo JAVA ngày nay chủ yếu dựa trên ngăn xếp (Stack-based),
với tính chất này cho phép rút ngắn thời gian thực thi chương trình.Mỗi ứng dụng


Báo Cáo TL Androd – Nhóm 10

Android chạy trong một cá thể của máy ảo Dalvik, khi đến lượt, cá thể máy ảo này
nằm trong một tiến trình do nhân Linux quản lý, như trình bày dưới đây.

Hình 1.5 . Máy ảo Dalvik
8. Vòng đời của ứng dụng Android:
Không giống như các ứng dụng trên các nền tảng khác, các ứng dụng Android
không có một điều khiển đến vòng đời của chúng. Thay vào đó, các thành phần ứng
dụng phải lắng nghe việc thay đổi trạng thái bên trong của ứng dụng đó và tác động
trở lại một cách hợp lý. Mỗi một ứng dụng Android ở trong chính tiến trình của nó,
chạy một thể hiện riêng biệt của Dalvik.Việc quản lý bộ nhớ và tiến trình của mỗi ứng
dụng Android được điều khiển một cách riêng trong lúc runtime.
Android quản lý tài nguyên một cách chặt chẽ, nó sẽ làm bất cứ việc gì để đảm
bảo cho thiết bị duy trì đáp ứng. Điều này có nghĩa là các tiến trình sẽ bị hủy đi mà
không có một cảnh báo nào nếu cần giải phóng tài nguyên cho các ứng dụng có độ ưu
tiên cao.


Báo Cáo TL Androd – Nhóm 10

CHƯƠNG 2: CÁC THÀNH PHẦN CƠ BẢN CỦA
MỘT ỨNG DỤNG ANDROID

1. Activity
1.1 Tạo một Activity
Để tạo một Activity mới, cần thừa kế từ lớp Activity, sử dụng các View để
cung cấp các tương tác với người dùng, khai báo các thành phần giao diện và thực thi
các chức năng của ứng dụng.
package com.paad.myapplication;
import android.app.Activity;
import android.os.Bundle;
public class MyActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
}
}
Một lớp Activity cơ bản đưa ra một màn hình rỗng chứa cửa sổ hiển thị. Vì vậy
việc cần thực hiện đầu tiên là khai báo bố cục cho nó bằng cách sử dụng các View và
Layout. Activity UI được tạo thành bởi các View. View là các điều khiển giao diện
người dùng, hiển thị dữ liệu và cung cấp tương tác đến người dùng.
Để gắn một giao diện cho một Activity, sử dụng phương thức setContentView
trong lớp Activity được kế thừa.
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
MyView myView = new MyView(this);
setContentView(myView);
}


Báo Cáo TL Androd – Nhóm 10


Có 2 cách để thiết lập giao diện cho Activity: bằng code hoặc thông qua file
định nghĩa layout . Ở trên là cách tạo giao diện bằng code, sau đây là cách tạo giao
diện người thông qua layout, truyền tham số vào cho phương thức setContentView là
một resource ID.
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
}
Để dùng một Activity cần khai báo bên trong file manifest. Thêm vào một thẻ
activity mới bên trong nút application. Thẻ activity này bao gồm các thuộc tính cho
siêu dữ liệu (label, icon,…). Một Activity mà không được khai báo một thẻ activity
tương ứng sẽ không được khởi chạy.
Ví dụ sau mô tả cách làm thế nào để khai báo Activity đã được tạo ở phần trên:
android:name=”.MyActivity”>
<intent-filter>
<action android:name=”android.intent.action.MAIN” />
<category android:name=”android.intent.category.LAUNCHER” />
</intent-filter>
</activity>
1.2 Vòng đời của Activity


Báo Cáo TL Androd – Nhóm 10

Hình 2.1. Vòng đời của Activity
1.3 Khởi động một Activity
Để khởi động một Activity, chúng ta dùng Intent:

o Khai báo tường minh: cung cấp chính xác thông tin của activity cần gọi (nếu
cùng ứng dụng chỉ cần cung cấp tên class, nếu ứng dụng khác nhau thì cung cấp tên
package, tên class). Ví dụ: đoạn code bên dưới sẽ khởi động activity tên là
TargetActivity.
Intent intent = new Intent(getApplicationContext(),TargetActivity.class);
startActivity(intent);
o Khai báo không tường minh: cung cấp thao tác cần làm gì, với loại dữ liệu
nào, thao tác thuộc nhóm nào… hệ thống sẽ tìm activity tương ứng để khởi động. Ví
dụ: đoạn code bên dưới sẽ khởi động một activity nào đó đăng có khả năng xem ảnh.
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivity(intent);


Báo Cáo TL Androd – Nhóm 10

Với cách khởi động activity không tường minh, chúng ta cần phải biết một
chút về Intent-filter.Intent-filter sẽ giúp một activity đăng ký với hệ thống mình có thể
làm được thao tác gì, trong nhóm nào, với loại dữ liệu nào. Như vậy khi intent và
intent-filter khớp nhau, activity sẽ được hệ thống khởi động.
1.4 Liên lạc giữa 2 Activity.

Có thể khởi động một activity với một yêu cầu nào đó và activity kia khi làm
xong công việc sẽ trả lại kết quả cho activity trước. Ví dụ activity A yêu cầu một
activity làm giúp việc chụp ảnh, activity B đáp ứng được việc này, sau khi user chụp
ảnh xong sẽ trả lại file ảnh cho activity A. Để liên lạc 2 activity chúng ta làm nhu sau:
-

Khi khởi động một activity, ta có thể gửi kèm dữ liệu trong intent như ví dụ
sau:

intent.putExtra("value1", new String("Hello"));
intent.putExtra(“value2", new Long(100));

-

Bên phía activity được khởi động, có thể lấy dữ liệu được gửi như sau:
getIntent().getExtras().getString("value1");
getIntent().getExtras().getLong("value2");

2. Một số lớp hỗ trợ thiết kế giao diện cho ứng dụng Android
Android cung cấp một số công cụ thiết kế giao diện:
 Views: là lớp UI cơ bản cho các control giao diện. Tất cả các control giao
diện người dùng, các lớp layout đều được dẫn xuất từ lớp Views.
 ViewGroups: được mở rộng từ lớp View và có thể chứa nhiều Views.
ViewGroups cũng được kế thừa để cung cấp các lớp quản lý bố cục như
LinearLayout. ViewGroup được dùng để xây dựng nên các component có thể dùng lại
(widget) hoặc để quản lý bố cục cho các control.
 Activity: dùng để hiển thị giao diện người dùng. Lớp này do người phát triển
ứng dụng viết.


Báo Cáo TL Androd – Nhóm 10

Hình 2.4. Quan hệ giữa các thành phần trên
3.Android Widget Toolbox
Android cung cấp một bộ công cụ các View chuẩn để tạo các giao diện người
dùng đơn giản,giúp đơn giản hóa việc phát triển và tạo sự đồng nhất giữa các ứng
dụng.
Các control thông dụng:
• TextView: là một label chỉ có tác dụng hiển thị văn bản, nó hỗ trợ hiển thị

nhiều dòng, định dạng chuỗi.
• EditText: là một vùng nhập văn bản có thể chỉnh sửa, hỗ trợ nhập nhiều
dòng.
• ListView: tạo và quản lý một nhóm các View để hiển thị một danh sách các
phần tử. Một ListView chuẩn dùng để hiển thị chuỗi giá trị của một mảng các
TextView.
• Spinner: là một control kết hợp, hiển thị một TextView và một ListView kết
hợp dùng để chọn một item từ danh sách. Nó được tạo thành từ một TextView chứa
giá trị hiện tại đang được chọn kết hợp với một nút mà khi nhấn vào sẽ đưa ra một
danh sách lựa chọn.
• Button
• CheckBox
• RadioButton
Andoid cũng hỗ trợ nhiều View cao cấp hơn như: date-time picker, autocomplete input box, map, gallery, và tab sheet.
4.Các kiểu Layout:


Báo Cáo TL Androd – Nhóm 10

LayoutManager (thường gọi là layout) là mở rộng của lớp ViewGroup, được
thiết kế để điều chỉnh vị trí của các control trên màn hình ứng dụng. Layout có thể
lồng nhau để tạo nên các giao diện phức tạp. Android có một số các layout đơn giản
giúp xây dựng UI. Để tạo nên một bố cục hợp lý thì nên kết hợp các layout với nhau.
Các lớp layout cơ bản:
• FrameLayout:

là layout đơn giản nhất trong Layout Manager,

FrameLayout đặt mỗi View con vào góc trái trên của màn hình. Việc thêm nhiều
control sẽ chồng một cái mới lên trên cái trước đó.

• LinearLayout: thêm mỗi View theo một đường thẳng, theo chiều dọc hoặc
ngang. Một layout theo chiều dọc sẽ có một control trên một dòng, layout theo chiều
ngang chỉ có một dòng cho nhiều View. Nó cho phép chỉ định giá trị “weight” cho
mỗi View con để điều chỉnh kích thước bên trong không gian cho phép.
• RelativeLayout: dùng để định vị trí cho các View cân xứng với các control
khác cũng như với đường biên của màn hình.
• TableLayout: giúp bố trí các View theo một lưới có các dòng và các cột.
Các cột có thể được thiết lập để co lại hoặc giản ra.
• AbsoluteLayout: trong layout này, vị trí mỗi View sẽ là tọa độ tuyệt đối,
đảm bảo bố cục chính xác cho các thành phần. Do đó, không thể có được sự linh hoạt
đối với các màn hình có kích thước khác nhau.
Sử dụng Layout:
Để sử dụng layout người ta thường dùng phương pháp là sử dụng resource bên
ngoài từ file XML. Một layout XML phải chứa một nút gốc.Nút gốc này có thể chứa
các layout và các View lồng nhau để xây dựng nên các giao diện phức tạp.
5.Tạo các View:
5.1 Chỉnh sửa các View có sẵn
Chỉnh sửa hoặc kế thừa một control sẳn có nếu nó cung cấp các chức năng cần
thiết, bằng cách ghi đè các handler và onDraw của nó. Để định nghĩa lại giao diện
cũng như các ứng xử của control mới tạo, cần phải ghi đè và thừa kế các điều khiển sự
kiện (event handler) kết hợp với các hành vi muốn thay đổi.
5.2 Tạo các điều khiển ghép (compound control)


Báo Cáo TL Androd – Nhóm 10

Compound control là các widget có thể tái sử dụng, nó chứa nhiều control được
bố trí và có liên hệ với nhau, nó được tạo từ nhiều control cơ bản.Ví dụ như tạo nên
một dropdown combo box bằng cách kết hợp một TextView và một Button mà khi
được nhấn sẽ hiển thị một ListView.

Khi tạo một compound control cần định nghĩa layout, hình thức và cách thức
tác động lẫn nhau giữa các View mà nó chứa. Compound control được tạo thành từ
việc dẫn xuất từ lớp ViewGroup.
Để tạo một compound control mới, chọn một lớp layout phù hợp nhất để xác
định vị trí cho các control, và dẫn xuất từ nó:
public class MyCompoundView extends LinearLayout {
public MyCompoundView(Context context) {
super(context);
}
public MyCompoundView(Context context, AttributeSet attrs) {
super(context, attrs);
}
}
Cách được ưa chuộng hơn để thiết kế giao diện cho một compound control là
sử dụng layout resource.
Để dùng được layout này cho widget mới cần phải định nghĩa lại contructor
của nó sử dụng phương thức inflate từ dịch vụ LayoutInflate. Phương thức inflate
nhận tham số là layout resource và trả về một View.
Một khi đã xây dựng được giao diện cho control, điều tiếp theo là định nghĩa
điều khiển sự kiện cho mỗi control con trong nó.
5.3 Tạo các Control tùy chỉnh
Người phát triển có thể tạo ra các control theo ý của mình để tạo được một giao
diện mang tính duy nhất phù hợp với yêu cầu của người dùng. Các control mới cần
phải được thừa kế từ lớp View hoặc SurfaceView.
Lớp View cung cấp một đối tượng Canvas và một số phương thức vẽ cũng như
các lớp Paint, để tạo một giao diện trực quan.Người thiết kế có thể định nghĩa lại các
sự kiện người dùng như cảm ứng trên màn hình, nhấn phím để tạo nên sự tương


Báo Cáo TL Androd – Nhóm 10


tác.Trong những trường hợp mà không đòi hỏi việc vẽ lại cũng như đồ họa 3D thì lớp
cơ sở View có giải pháp hiệu quả.
Trong khi đó, lớp SurfaceView cung cấp một đối tượng canvas hỗ trợ việc vẽ
từ một luồng xử lý nền và sử dụng openGL cho đồ họa 3D. Đây là một lựa chọn tuyệt
với cho các điều khiển đòi hỏi đồ họa cao, cần phải cập nhật liên tục hoặc hiển thị
các đồ họa phức tạp, như game 3D.
5.4 Tạo giao diện Activity với các View
Một Activity khi chưa thiết kế sẽ khởi động với một màn hình rỗng. Để thiết
lập giao diện cho màn hình rỗng này cần gọi phường thức setContentView khi
everride lại phương thức onCreate. Phương thức setContentView có thể nhận một
tham số là resource ID hoặc một thể hiện của View. Do đó, có thể định nghĩa giao
diện ứng dụng bằng code hoặc tham chiếu đến resource (layout).
Nếu dùng layout resource thì sẽ tách riêng việc thiết kế giao diện và phần code
xử lý, cung cấp một khả năng thay đổi linh hoạt giao diện mà không thay đổi code bên
trong.
6 .Menu
6.1 Menu trong Android
Menu đưa ra một giải pháp để tăng tính tiện dụng của ứng dụng mà không
chiếm dụng không gian trên màn hình. Mỗi một Activity có riêng cho nó một menu,
được hiển thị khi người dùng nhấn nút Menu.
Android cũng hỗ trợ menu ngữ cảnh, nó được gán vào bất kỳ View nào bên
trong một Activity.Một menu ngữ cảnh được hiển thị khi người dùng nhấn nút D-pad,
trackball, hoặc nhấn vào màn hình cảm ứng khoảng 3 giây.menu ngữ cảnh hỗ trợ
submenu, checkbox, radio button, shortcut key, và icon.
Các loại menu trong android:
• Icon Menu: được kết với menu, xuất hiện ở phần dưới của màn hình thiết bị
khi nút Menu được nhấn. Nó hiển thị icon và text cho các menu item hoặc các
submenu. Icon menu hỗ trợ tạo tối đa 6 menu item, và các menu item này không thể
hiển thị checkbox, radio button, hay shortcut key.



Báo Cáo TL Androd – Nhóm 10

Hình 2.6. Icon menu
• Expanded Menu: hiển thị khi người dùng chọn More trong menu icon.
Expand Menu hiển thị một danh sách có thể cuộn được các menu item, và các menu
item này không thể chứa các icon mà chỉ có thể chứa text, shortcut key và checkbox/
radio button.

Hình 2.7. Expanded menu
• Submenu: mỗi submenu hiển thị bằng một cửa sổ, tên của submenu được
hiển thị ở thanh header và mỗi Menu item được hiển thị với đầy đủ text, checkbox,
shortcut key và không thể hiển thị icon cho các item. Android không hỗ trợ các
submenu lồng nhau, vì không thể thêm một submenu vào một submenu.


Báo Cáo TL Androd – Nhóm 10

Hình 2.8. Submenu
6.2 Các kiểu Menu Item
Android hỗ trợ hầu hết các kiểu menu item truyền thống, bao gồm icon,
shortcut, checkbox, radio button:
• Checkbox và Radio button group: Để thiết lập một menu item là checkbox
sử dụng phương thức setCheckable, để thiết lập trạng thái của checkbox
dùngsetChecked.
Một radio button group là một nhóm các radio button và chỉ có một trong số
chúng được chọn tại một thời điểm. Để tạo một radio button group, gán cùng ID
nhóm cho mỗi item, sau đó gọi phương thức Menu.setGroupCheckable, truyền vào ID
nhóm, và thiết lập giá trị cho các tham số khác là True.

• Shorcut Key: để chỉ định một keypad shortcut cho một Menu Item sử dụng
phương thức setShortcut. Phương thức này yêu cầu truyền vào 2 tham số, một là phím
số và một là bàn phím đầy đủ.
menuItem.setShortcut(‘0’, ‘b’);
• Condensed Title: dùng một text để hiển thị menu.
menuItem.setTitleCondensed(“Short Title”);
• Icon: biểu tượng chỉ được hiển thị trên Icon Menu
menuItem.setIcon(R.drawable.menu_item_icon).


Báo Cáo TL Androd – Nhóm 10

• Menu Item Click Listener: khi một menu được chọn sẽ có một xử lý điều
khiển. Đó là phương thức onOptionsItemSelected.
menuItem.setOnMenuItemClickListener(new OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem _menuItem) {
[ ...thực hiện xử lý ... ]
return true;
}
});
• Intent: Khi một menu item được chọn, Android sẽ thực thi startActivity với
một đối tượng Intent.
menuItem.setIntent(new Intent(this, MyOtherActivity.class));
6.3 Tạo một Menu
Để tạo một menu, trong Activity override phương thức onCreateOptionsMenu,
phương thức này được thực thiện ở lần đầu tiên khi menu được hiển thị.
onCreateOptionsMenunhận một tham số kiểu Menu. Dùng phương thức add trên đối
tượng Menu này để thêm vào các item. Mỗi menu item cần phải chỉ định các thuộc
tính sau:
• Nhóm mà item đó được thêm vào.

• ID, mỗi item có một ID duy nhất, bởi vì chúng được xử lý chung trong
phương thức onOptionsItemSelected nên việc xác định item nào được chọn là phụ
thuộc vào ID được chỉ định cho nó.
• Cách sắp xếp thứ tự mà item được hiển thị.
• Text thể hiện của item, có thể là một chuỗi các ký tự hoặc một string
resource.


Báo Cáo TL Androd – Nhóm 10

CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG “HỌC TIẾNG NHẬT”

1. Mô hình phân cấp chức năng

Học hội thoại tiếng nhật

Hội thoại cơ bản

Hội thoại nâng cao

Bài học cơ bản

Bài học nâng cao

2. cầu sản phẩm
-

Học offline.

-


Hỗ trợ nền tảng Android từ phiên bản 2.2

-

Thông tin ngôn ngữ chuẩn xác

-

Bảo đảm nội dung không bị trùng lập

2 Hệ điều hành:
-

Ứng dụng được dùng trên di động cài hệ điều hành Android.

3 Mô tả ứng dụng
"Học tiếng Nhật" gồm hơn 800 cụm từ và từ vựng thường dùng tiếng Nhật dành cho người
đi du lịch và người mới học. Sử dụng ứng dụng này, bạn có thể học từ chú vẹt biết nói tiếng
Nhật của chúng tôi. Chú vẹt biết nói làm việc cùng bạn để thực hành các kỹ năng nghe và
nói của bạn, ở bất cứ đâu và bất cứ khi nào bạn muốn. Học tiếng Nhật chưa bao giờ dễ
dàng đến thế.


Báo Cáo TL Androd – Nhóm 10
TÍNH NĂNG


Các





cụm

từ

Cách
Ghi



Lưu



Tìm

từ

phát

âm
trữ

&

&

&


kiếm

quản
các

âm

so

cụm

vựng

sánh
các
từ

&

từ
từ

dụng

chính
phát

cụm


thông
âm

ưa
vựng

xác
của

thích

của

bằng

từ

bạn
bạn
khóa

• Không cần kết nối Internet

2 Giao diện ứng dụng
Ứng dụng được sở hữu giao diện thông minh tùy biến mạnh mẽ trên nền tảng
Android tryền thống với các Icon được thiết kế riêng cho ứng dụng , tạo nên sự
nổi bật riêng cho từng khu vực giúp ngươi dùng dễ dàng sử dụng.

3 Ảnh chụp màn hình
iCon ứng dụng “ Học Tiếng Nhật “



Báo Cáo TL Androd – Nhóm 10

Màn hình chào


Báo Cáo TL Androd – Nhóm 10

Màn hình chính


Báo Cáo TL Androd – Nhóm 10


Báo Cáo TL Androd – Nhóm 10

Giao Diện Bài Học


×