TÓM TẮT LẬP TRÌNH ANDROID
1. BẮT TỌA ĐỘ KHI CHẠM TAY VÀO MÀN HÌNH
2. ANIMATION
3. TIMER
new CountDownTimer(5000, 100) {
public void onTick(long millisUntilFinished) {
txtvSo.setText("còn lại: " + millisUntilFinished / 100);
}
public void onFinish() {
txtvSo.setText("done!");
}
}.start();
4. DI CHUYỂN GIỮA CÁC MÀN HÌNH
5. TRUYỀN THAM SỐ GIỮA CÁC MÀN HÌNH
6. ALERT DIALOG
Button btnNut;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnNut = (Button)findViewById(R.id.btnNut);
btnNut.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
showAlert();
}
});
}
public void showAlert(){
AlertDialog.Builder builder = new Builder(this);
builder.setPositiveButton("ON", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
});
builder.setTitle("Tieu de");
builder.setMessage("Noi dung ne");
AlertDialog ad = builder.create();
ad.show();
}
7. LIST VIEW CƠ BẢN
B1: Kéo listview vào
<ListView
android:id="@+id/listviewMonHoc"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true" >
</ListView>
android:id="@+id/listviewMonHoc"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true" >
</ListView>
B2: Viết code code:
ListView monhocLV = (ListView)findViewById(R.id.listviewMonHoc);
String[] monhoc = new String[]{
"iOS cơ bản",
"iOS nâng cao",
"PHP & MySQL",
"Joomla",
"Wordpress"
};
ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, monhoc);
monhocLV.setAdapter(adapter);
**** Bắt sự kiện chọn 1 item trong listview
monhocLV.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView parent, View view, int position, long id) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), monhoc[position], Toast.LENGTH_SHORT).show();
}
});
"Mảng monhoc phải thêm final"
8. LIST VIEW NÂNG CAO - CUSTOM ADAPTER
public class ListAdapter extends ArrayAdapter<SinhVien> {
public ListAdapter(Context context, int resource, List<SinhVien> items) {
super(context, resource, items);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
if (view == null) {
LayoutInflater inflater = LayoutInflater.from(getContext());
view = inflater.inflate(R.layout.ten_file_xml_custom_layout, null);
}
SinhVien p = getItem(position);
if (p != null) {
// Anh xa + Gan gia tri
TextView txt = (TextView) view.findViewById(R.id.textView);
}
return view;
}
}
9. TOAST
- Toast cơ bản:
Toast toast = Toast.makeText(MainActivity.this, "Hello World", Toast.LENGTH_SHORT);
toast.setGravity(Gravity.TOP, 0, 0);
toast.show();
Toast toast = Toast.makeText(MainActivity.this, "Hello World", Toast.LENGTH_SHORT);
toast.setGravity(Gravity.TOP, 0, 0);
toast.show();
- Chèn View vào bên trong Toast:
LayoutInflater inflater = getLayoutInflater();
View layoutQC = inflater.inflate(R.layout.thongbao, (ViewGroup)findViewById(R.id.layoutThongbao));
Toast t = new Toast(MainActivity.this);
t.setView(layoutQC);
t.show();
LayoutInflater inflater = getLayoutInflater();
View layoutQC = inflater.inflate(R.layout.thongbao, (ViewGroup)findViewById(R.id.layoutThongbao));
Toast t = new Toast(MainActivity.this);
t.setView(layoutQC);
t.show();
10. ÉP KIỂU DỮ LIỆU
Ép số: Integer.parseInt("1987")
Ép chuỗi: String.valueOf(10)
11. PLAY MP3 FROM INTERNET + LOCAL
- From local:
MediaPlayer song = MediaPlayer.create(MainActivity.this, R.raw.nuocmat);
song.start();
Stop:
onPause();
song.pause();
MediaPlayer song = MediaPlayer.create(MainActivity.this, R.raw.nuocmat);
song.start();
Stop:
onPause();
song.pause();
- From Internet:
public void PlayNhacMp3(String url){
//url = "http://khoapham.vn/download/vietnamoi.mp3";
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
try {
mediaPlayer.setDataSource(url);
mediaPlayer.prepareAsync();
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.start();
}
});
} catch (IOException e) {
e.printStackTrace();
}
}
12 . CHECKBOX
13. SAVE + READ FILE TXT
- Save file txt
FileOutputStream fos = openFileOutput("khoapham.txt", Context.MODE_PRIVATE);
fos.write(noidung.getBytes());
fos.close()
fos.write(noidung.getBytes());
fos.close()
- Read file txt
FileInputStream fis = openFileInput("khoapham.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(new DataInputStream(fis)));
String line = "";
while( (line = br.readLine()) != null ){
txtvNoiDung.append(line);
txtvNoiDung.append("\n");
}
BufferedReader br = new BufferedReader(new InputStreamReader(new DataInputStream(fis)));
String line = "";
while( (line = br.readLine()) != null ){
txtvNoiDung.append(line);
txtvNoiDung.append("\n");
}
14. CHECK 2 VIEW CHẠM NHAU
15. KÍCH THƯỚC CỦA MÀN HÌNH THIẾT BỊ
Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
int width = display.getWidth();
int height = display.getHeight();
int ori = display.getOrientation();
15. WEBVIEW: URL INTERNET & LOCAL HTML
16. SHARED PREFERENCE17. SQLITE
- Sử dụng class Database
18. ASYNC
19. XMLDOMPARSER
B1: Tạo class XMLDOMParser
B2: MainActivity
- Tạo hàm docNoiDung_Tu_URL(String theUrl) - [ THAY THẾ CHO getXmlFromUrl ]
Lưu ý: Hàm này tìm ở phía dưới. - Tạo Async: 3. OnCreate :
Code:
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_REQUEST);
startActivityForResult(cameraIntent, CAMERA_REQUEST);
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK) {
Bitmap photo = (Bitmap) data.getExtras().get("data");
img = (ImageView)findViewById(R.id.imageViewHinh);
img.setImageBitmap(photo);
}
}
21. TEXT TO SPEED
TextToSpeech t1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
t1=new TextToSpeech(getApplicationContext(), new TextToSpeech.OnInitListener() {
@Override
public void onInit(int status) {
if(status != TextToSpeech.ERROR) {
t1.setLanguage(Locale.ENGLISH);
t1.speak("I've been lonely with you", TextToSpeech.QUEUE_FLUSH, null)
}
}
});
}
22. SEND POST ĐẾN WEB SERVER
Note: Phải sử dụng Asysnc
private String makePostRequest() {
HttpClient httpClient = new DefaultHttpClient();
// URL của trang web nhận request
HttpPost httpPost = new HttpPost("http://khoapham.vn/post.php");
// Các tham số truyền
List nameValuePair = new ArrayList(2);
nameValuePair.add(new BasicNameValuePair("so1", "111"));
nameValuePair.add(new BasicNameValuePair("so2", "222"));
//Encoding POST data
try {
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePair));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
String kq = "";
try {
HttpResponse response = httpClient.execute(httpPost);
HttpEntity entity = response.getEntity();
kq = EntityUtils.toString(entity);
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return kq;
}
23. ĐỌC NỘI DUNG CỦA MỘT URL INTERNET
private static String docNoiDung_Tu_URL(String theUrl)
{
StringBuilder content = new StringBuilder();
try
{
// create a url object
URL url = new URL(theUrl);
// create a urlconnection object
URLConnection urlConnection = url.openConnection();
// wrap the urlconnection in a bufferedreader
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
String line;
// read from the urlconnection via the bufferedreader
while ((line = bufferedReader.readLine()) != null)
{
content.append(line + "\n");
}
bufferedReader.close();
}
catch(Exception e)
{
e.printStackTrace();
}
return content.toString();
}
24. IMAGEVIEW TO BYTE ARRAYpublic byte[] ImageView_To_Byte(ImageView imgv){
BitmapDrawable drawable = (BitmapDrawable) imgv.getDrawable();
Bitmap bmp = drawable.getBitmap();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
return byteArray;
}
25. BYTE ARRAY TO IMAGEVIEW
Bitmap bitmap = BitmapFactory.decodeByteArray(BYTE[], 0, BYTE[].length); imgv.setImageBitmap(bitmap);
26. CONFIG PARSE CONNECT
- Add class MyApplication
public class MyApplication extends Application {
@Override
public void onCreate(){
super.onCreate();
Parse.initialize(this, "xxx", "yyy");
}
}
- Trong Manifest
android:name="MyApplication"
27. PLAY MP3 FROM BYTE[]
private void playMp3FromByte(byte[] mp3SoundByteArray) {
try {
File tempMp3 = File.createTempFile("kurchina", "mp3", getCacheDir());
tempMp3.deleteOnExit();
FileOutputStream fos = new FileOutputStream(tempMp3);
fos.write(mp3SoundByteArray);
fos.close();
MediaPlayer mediaPlayer = new MediaPlayer();
FileInputStream fis = new FileInputStream(tempMp3);
mediaPlayer.setDataSource(fis.getFD());
mediaPlayer.prepare();
mediaPlayer.start();
} catch (IOException ex) {
String s = ex.toString();
ex.printStackTrace();
}
}
28. CONVERT FILE LOCAL TO BYTE[]
public byte[] FileLocal_To_Byte(String path){
File file = new File(path);
int size = (int) file.length();
byte[] bytes = new byte[size];
try {
BufferedInputStream buf = new BufferedInputStream(new FileInputStream(file));
buf.read(bytes, 0, bytes.length);
buf.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return bytes;
}
// path
outputFile = Environment.getExternalStorageDirectory().
getAbsolutePath() + "/filename.3gpp";
filename.3gpp nằm trong res
29. PLAY FILE MP4 LOCAL VÀ INTERNET
Mp4 Local:
mVideoView.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.test));
mVideoView.start();
// media controler
MediaController mediaController = new MediaController(this);
mediaController.setMediaPlayer(mVideoView);
mVideoView.setMediaController(mediaController);
MP4 INTERNET:
Uri uri = Uri.parse("http://khoapham.vn/download/vuoncaovietnam.mp4");
mVideoView.setMediaController(new MediaController(MainActivity.this));
mVideoView.setVideoURI(uri);
mVideoView.start();
Lưu ý:
1 - Nhớ xin Permission Internet
2 - mVideoView: là đối tượng VideoView
3 - Dừng phim lại: mVideoView.stopPlayback();
30. VIẾT ỨNG DỤNG GHI ÂM
Bước 1: Lấy Permissions
< uses-permission android:name="android.permission.RECORD_AUDIO" /> < uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
Bước 2: MainActivity:
1. Biến toàn cục:
private MediaRecorder myRecorder; private MediaPlayer myPlayer; private String outputFile = null;
2. Hàm OnCreate:
outputFile = Environment.getExternalStorageDirectory().getAbsolutePath() + "/khoaphamvn.3gpp"; myRecorder = new MediaRecorder(); myRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); myRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); myRecorder.setAudioEncoder(MediaRecorder.OutputFormat.AMR_NB); myRecorder.setOutputFile(outputFile);
Bước 3: Các hàm xử lý:
1. Bắt đầu ghi âm
public void start(View view){
try {
myRecorder.prepare();
myRecorder.start();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
Toast.makeText(getApplicationContext(), "Start recording...",
Toast.LENGTH_SHORT).show();
}
2. Dừng ghi âm
public void stop(View view){
try {
myRecorder.stop();
myRecorder.release();
myRecorder = null;
Toast.makeText(getApplicationContext(), "Stop recording...",
Toast.LENGTH_SHORT).show();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (RuntimeException e) {
e.printStackTrace();
}
}
3. Play âm thanh đã thu
public void play(View view) {
try{
myPlayer = new MediaPlayer();
myPlayer.setDataSource(outputFile);
myPlayer.prepare();
myPlayer.start();
Toast.makeText(getApplicationContext(), "Start play the recording...",Toast.LENGTH_SHORT).show();
} catch (Exception e) {
e.printStackTrace();
}
}
4. Dừng Play:
public void stopPlay(View view) {
try {
if (myPlayer != null) {
myPlayer.stop();
myPlayer.release();
myPlayer = null;
Toast.makeText(getApplicationContext(), "Stop playing the recording...", Toast.LENGTH_SHORT).show();
}
} catch (Exception e) {
e.printStackTrace();
}
}
31. SPINNER
1. Cầu hình Spinner dạng cơ bản:
spinner1 = (Spinner)findViewById(R.id.spinnerChon);
List list = new ArrayList();
list.add("list 1");
list.add("list 2");
list.add("list 3");
ArrayAdapter dataAdapter = new ArrayAdapter(this,
android.R.layout.simple_spinner_item, list);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner1.setAdapter(dataAdapter);
spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView parent, View view, int position, long id) {
Toast.makeText(getApplicationContext(), "" + position, Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView parent) {
}
});
2. Bắt giá trị trong Spinner:
String.valueOf(spinner1.getSelectedItem()); // TPHCM
String.valueOf(spinner1.getSelectedItemPosition()); // 0















Không có nhận xét nào:
Đăng nhận xét