android programming
DESCRIPTION
Android Programming • Android Application Life Cycle • Say “Hello World” • Setup Mobile for Development Mode • Notification • การสร้างการทำงานแบบ ListActivity • การรับส่งข้อมูลระหว่าง Activity • Android Camera Selfie • บันถึงข้อมูลรูปภาพลง External StorageTRANSCRIPT
2
Topic• Android Application Life Cycle• Say “Hello World”• Setup Mobile for Development Mode• Notification• การสร�างการทำ�างานแบบ ListActivity• การร�บส งข้�อมู�ลระหว่ าง Activity• Android Camera Selfie• บ�นถึ�งข้�อมู�ลร�ปภาพลง External
Storage Mr.Jenchoke Tachagomain
Mr.Jenchoke Tachagomain 3
Android Application Life Cycle
วงจรชี�ว�ตเกิ�ดแกิ เจ�บตายของ Android Application
Mr.Jenchoke Tachagomain 4
Hello World
Mr.Jenchoke Tachagomain 5
Hello World
• เปิ�ด Eclipse• Select Workspace “E:\eclipseWorkSpace”
• New > Android Application Project
Mr.Jenchoke Tachagomain 6
Create a new Android Application
Mr.Jenchoke Tachagomain 7
Create Project in Workspace
Mr.Jenchoke Tachagomain 8
Crate Activity เปิ�นกิารบอกิให้�
Eclipse
สร�างโครงสร�าง ของ
Activity ให้� โดยที่��Activity ต างๆจะถู#กิควบค$มผ่ านที่างActivity Manager
ที่'(งห้มดตามร#ปิ แบบของ Life Cycle
ของ Android
Mr.Jenchoke Tachagomain 9
Blank Activity
ชี)�อของ Java Class ที่��ระบบจะสร�างข+(นให้� MainActivity.java
ชี)�อของ Layout ที่��ระบบจะสร�างข+(นให้� active_main.xml ใชี�กิ,าห้นด GUI
AndroidManifest.xml ค)อไฟล์0ที่��กิ,าห้นดว า
Application ใชี� Resource อะไรบ�าง ใชี� permission อะไรบ�าง แล์�ว ม� Activity
อะไรบ�างจะถู#กิสร�างโดย อ'ตโนม'ต� ในข'(นตอน กิารสร�าง Android Project
Mr.Jenchoke Tachagomain 10
Android Project on Eclipse
Mr.Jenchoke Tachagomain 11
Setup Mobile for Development Mode
Mr.Jenchoke Tachagomain 12
ต่ ออ�ปกรณ์�มู�อถึ�อผ่ านทำางUSB Port
เพ�"อใช้�ในการพ�ฒนาโปรแกรมู ช้�"อ Device ทำ'"เช้�"อมูต่ อก�บ Eclipse
แสดงสถึาน Online และ Version ข้องAndroid
แสดง Log Massage ทำ'"ได�จาก Device ทำ'"เช้�"อมูต่ อ
Mr.Jenchoke Tachagomain 13
ทำ�าการ Run Android Application
Mr.Jenchoke Tachagomain 14
แสดงผ่ลการ Run application ผ่ าน Eclipse
Mr.Jenchoke Tachagomain 15
AndroidManifest.xml
บอกิ Version ของ Application ที่��เราที่,ากิารพั'ฒนา
บอกิ Version ของ SDK ของที่�� รองร'บกิารที่,างาน
กิ,าห้นดร#ปิแบบต างๆของ Application
กิ,าห้นด Class Activity ที่��จะใชี�งาน
กิ,าห้นดให้� Activity น�(เปิ�น Activity Main Program ที่��ใชี�ในกิาร RUN (.LAUCHER)
Mr.Jenchoke Tachagomain 16
activity_main.xml ใช้�ก�าหนดLayout
เราสารมาสร�าง Layout ผ่ านที่าง GUI ที่�� Eclipseให้�มา Palette โดยใชี�ว�ธี�กิาร drag & drop
Mr.Jenchoke Tachagomain 17
Class MainActivity ทำ'"เราส�บทำอดมูาจาก Class Activity
กิ,าห้นดให้�สร�าง ContentView Files Layout จากิ activity_main.xml
Mr.Jenchoke Tachagomain 18
Notification
Mr.Jenchoke Tachagomain 19
• แจ�งเต่�อนด�ว่ย Toast
• แจ�งเต่�อนด�ว่ย Alert Dialog
ระบบการแจ�งเต่�อน(Notification)
• แจ�งเต่�อนด�ว่ยNotification
Mr.Jenchoke Tachagomain 20
แจ�งเต่�อนด�ว่ย Toast• New > Android Application Project
Mr.Jenchoke Tachagomain 21
การก�าหนด Layout ทำ'"activity_main.xml
Tab Graphic Layout
Mr.Jenchoke Tachagomain 22
MainActivity.java
ก�าหนดค่ าให�ก�บต่�ว่แปล Button1, Button2, Button3 โดยผ่ าน method findViewById() ที่��มาจากิ Class android.view- findViewById กิ�ค)อกิารด+ง GUI ใน View น'(นๆออกิมาใชี�งานน'�นเอง
ไมู ว่ าจะเป-น Button, TextView, EditText, ListView หร�อ View ต่ างๆทำ'"อย� ในหน�า Layout XML ล�ว่นจะต่�องใช้� findViewById ทำ�/งน�/น
activity_main.xml
Mr.Jenchoke Tachagomain 23
ด�งน�/นถึ�าลองมูองโค่0ดก�บภาพประกอบรว่มูก�นก1จะเป-น
ล�าด�บข้�/นต่อนด�งน'/
Mr.Jenchoke Tachagomain 24
Mr.Jenchoke Tachagomain 25
การก�าหนด Layout ทำ'" activity_main.xml
Mr.Jenchoke Tachagomain 26
การก�าหนดค่ า Event ให�ก�บButton
setOnClickListener ค)อกิาร Register กิาร callback ให้�กิ'บ Button เม)�อเกิ�ด เห้ต$กิารณ์0 Click โดย method น�(ม�กิารส)บที่อด Class มาจากิ Class View น'(นเอง
โดยจะที่,าเอา Object View ที่��ส)บที่อดจากิ android.view.setOnClickListener() มาเปิ�นต'วร'บเห้ต$กิารณ์0 ที่��เกิ�ดข+(น
android.view.setOnClickListener()
Mr.Jenchoke Tachagomain 27
การใช้� Toast แสดงข้�อค่ว่ามูแจ�งเต่�อน
Mr.Jenchoke Tachagomain 28
ผ่ลการ Run Android ApplicationNotification
On Click
แสดงข�อความที่��กิ,าห้นดไว�
Mr.Jenchoke Tachagomain 29
การใช้� AlertDialog แสดงข้�อค่ว่ามูแจ�งเต่�อน
On Click
แสดงข�อความที่��กิ,าห้นดไว�
Mr.Jenchoke Tachagomain 30
เพ2"มู Button และ Event ให�ก�บAlertDialog
สร�าง ObjectDialog Builderให้�กิ'บ ObjectAlertDialog
Set ค�าให้�กิ'บObject AlertDialog
Mr.Jenchoke Tachagomain 31
แสดง Button ที่��ที่,ากิารเพั��มเข�ามา
Click
Click
Mr.Jenchoke Tachagomain 32
การใช้� Notification แสดงข้�อค่ว่ามูแจ�งเต่�อน
NotificationManager เป-น Class ต่�ว่ค่ว่บค่�มูการแจ�งเต่�อนในระบบ Android โดยจะร�บค่ าจากObject Notification ทำ'"เราสร�างข้�/นมูาโดยก�าหนดค่�ณ์สมูบ�ต่2จาก Object NotificationCompat
Mr.Jenchoke Tachagomain 33
Click
แสดงข�อความแจ�งเต)อนจากิกิารsetTicker()
แสดงข�อความแจ�งเต)อนที่��ถู#กิร�างมาจากิ
Object Notification ผ่ าน Notification Manager
Mr.Jenchoke Tachagomain 34
การสร�าง PendingIntent, Intent เพ�"อร�บค่ าเหต่�การณ์�จาก Event ข้อง
Notification สร�าง Class Activity ชี)�อ UpdateActivity.java สร�าง XML Layout ชี)�อ Update_activity.xml
กิ,าห้นด Layout ให้�กิ'บ Class Activity โดยใชี�ข�อม#ล์จากิ update_activity.xml
Mr.Jenchoke Tachagomain 35
XML Layout ชี)�อ Update_activity.xml
Mr.Jenchoke Tachagomain 36
เพั��ม Activity Class เข�าไปิใน AndroidManifest.xml
Mr.Jenchoke Tachagomain 37
ปร�บแต่ ง onClick() ข้อง button3
Object Intent ที่,าห้น�าที่��ผ่#กิกิารที่,างานระห้ว าง Class MainActivity.java แล์ะ UpdateActivity.javaObject PendingIntent ที่,าห้น�าที่��เปิ�นต'วส'�งกิารเชี)�อมต อระห้ว างกิ'นผ่ านต'วแปิร Object
Mr.Jenchoke Tachagomain 38
Click
Click
MainActivity.java UpdateActivity.javaNotification Manager
Mr.Jenchoke Tachagomain 39
การสร�างการทำ�างานแบบ ListActivity
Mr.Jenchoke Tachagomain 40
สร�างทำ�าการ Android Application
Mr.Jenchoke Tachagomain 41
ก�าหนดการ Create Activity
Mr.Jenchoke Tachagomain 42
ก�าหนดช้น2ดข้องการ Create Activity
เล์)อกิ Blank Activity
Mr.Jenchoke Tachagomain 43
ต่�/งช้�"อ Activity และ Layout
Mr.Jenchoke Tachagomain 44
Copy Files
Copy File ร�ปภาพ .png ไปว่างใน Patch ข้อง res/drawable-hdpi/
Mr.Jenchoke Tachagomain 45
Copy File ร�ปภาพ .png ไปว่างในPatch
ข้อง res/drawable-hdpi/
กิารต'(งชี)�อ Image Resource Filesในระบบ Android น'(นห้�ามม�กิารใชี�เคร)�องห้มายล์บห้ร)อมร�ชี องว าง “ ” และ ”-”
Mr.Jenchoke Tachagomain 46
สร�าง List Menu โดยใช้� Object ImageView ลากมูาว่างไว่�ทำ'" Layout
ระบบจะให้�เล์)อกิImage Resource Files
Click
Mr.Jenchoke Tachagomain 47
activity_main.xml
Mr.Jenchoke Tachagomain 48
ก�าหนดการทำ�างานข้อง Class MainActivity โดยให�ส�บทำอดจาก Class จาก ListActivity
สร�าง String Array เพั)�อใชี�ในกิ,าห้นดกิารแสดงรายกิาร
Mr.Jenchoke Tachagomain 49
สร�าง Class ArrayAdapterImage มูาทำ�าหน�าทำ'" แสดงข้�อค่ว่ามูและร�ปภาพใน ListActivity
ด�งน'/
Mr.Jenchoke Tachagomain 50
Mr.Jenchoke Tachagomain 51
เร'ยกใช้� ArrayAdapterImage ในหาร setListAdapter ด�งน'/
Mr.Jenchoke Tachagomain 52
ทำ�าการ Run Android Application
Mr.Jenchoke Tachagomain 53
การเพ2"มู Event onListItemClick()
Mr.Jenchoke Tachagomain 54
ทำ�าการ Run Android Application
Click
แสดงข�อความที่��กิ,าห้นดไว�
Mr.Jenchoke Tachagomain 55
การร�บส งข้�อมู�ลระหว่ างActivity
Mr.Jenchoke Tachagomain 56
สร�าง Android Project ช้�"อSendData
Mr.Jenchoke Tachagomain 57
ออกแบบ Layout เพ�"อใช้�ส งข้�อมู�ล
activity_main.xml
Mr.Jenchoke Tachagomain 58
Click เพั)�อสร�าง XML Layout(secondscreen.xml)
สร�าง Layout เพ�"อใช้�ร�บข้�อมู�ล
Mr.Jenchoke Tachagomain 59
สร�าง Layout ช้�"อsecondscreen.xml
Mr.Jenchoke Tachagomain 60secondscreen.xml
Mr.Jenchoke Tachagomain 61
สร�าง Activity Class ช้�"อSecondScreen.java
Mr.Jenchoke Tachagomain 62
สร�าง methods onCreate() ให้�กิ'บ Class SecondScreen.java
Mr.Jenchoke Tachagomain 63
กิ,าห้นดต'วแปิล์งที่��จะใชี�ส งข�อม#ล์
ด+งค าจากิ Object ค าให้�ต'วแปิล์
ส งผ่ านข�อม#ล์ระห้ว าง Activity โดยใชี�Object Intent
MainActivity.java
Mr.Jenchoke Tachagomain 64SecodScreen.java
กิล์'บห้น�าจอห้ล์'กิ
ด+งค าจากิ Object Intent โดยใชี� method getIntent()
Mr.Jenchoke Tachagomain 65
เพ2"มู Class SecondScreen ในAndroidManifest.xml
Mr.Jenchoke Tachagomain 66 เพั��ม Class SecondScreen ในAndroidManifest.xml
Mr.Jenchoke Tachagomain 67
Click
Click
SecodScreenMainActivity
Mr.Jenchoke Tachagomain 68
Android Selfie
Mr.Jenchoke Tachagomain 69
สร�าง Android Project ช้�"อMyCamera
Mr.Jenchoke Tachagomain 70
AndroidManifest.xml
เพั��ม Permission ในกิารเข�าถู+ง Camera Device แล์ะ Storage
ให้�กิ'บ Android Project
Mr.Jenchoke Tachagomain 71
AndroidManifest.xml
72Mr.Jenchoke Tachagomain
activity_main.xml
Mr.Jenchoke Tachagomain 73
activity_main.xml
Mr.Jenchoke Tachagomain 74
activity_main.xml
กิ,าห้นดขนาดให้�กิ'บSerfaceView
Mr.Jenchoke Tachagomain 75MainActivity.java
Mr.Jenchoke Tachagomain 76MainActivity.java
Method ของกิาร Implement SerfaceHolder.Callback
Mr.Jenchoke Tachagomain 77
Click Click
กล�องหล�ง
กล�องหน�า
Mr.Jenchoke Tachagomain 78
ถึ ายภาพและจ�ดเก1บภาพ
เพั��ม method PictureCallback() เพั)�อมารองร'บกิารที่,างานของ method Camera.takePicture()
ข�อม#ล์ภาพั
Patch ที่��อย# ของร#ปิที่��จะจ'ดเกิ�บ
สร�าง File ร#ปิภาพั
Mr.Jenchoke Tachagomain 79
เพ2"มู Event Onclick เพ�"อทำ�าการถึ ายภาพ โดยเร'ยกใช้�งานผ่ าน Method takePicture() ข้อง
Object Camera
Mr.Jenchoke Tachagomain 80
ร�ปภาพถึ�กจ�ดเก1บไว่�ต่ามูทำ'" มู'การก�าหนดไว่�ให�
Application
81
Thank