Praktikum XI Animasi dan Multimedia Pokok bahasan: • •
Animasi dan multimedia Membuat aplikasi yang melibatkan komponen multimedia
Tujuan Belajar: Setelah mempelajari modul ini mahasiswa diharapkan mengetahui: • •
Aplikasi yang melibatkan multimedia Membuat aplikasi animasi
Teori Dasar Animasi Prinsip animasi adalah menjalankan urutan image dalam waktu tertentu.. Gerakan gambar secara berurutan sehingga membentuk “ilusi” gambar bergerak. Animasi dalam android juga menerapkan prinsip tertentu. Tipe Animasi pada Android • • • •
Animasi Frame by frame Animasi Layout Animasi View/view animation Tweening animation
Modul Praktikum Pemrograman IV -adam_ab-2014
Hal 1
Ilustrasi animasi frame by frame
Percobaan di bawah ini akan membuat aplikasi android tentang tangan begerak dan bersuara. Terdapat dua file activity, image untuk animasi dan asset untuk menyimpan file audio GambarActivity.java package com.example.mencoba; import android.app.Activity; ediaPlayer; import android.media.MediaPlayer; import android.os.Bundle; import android.os.Handler; import android.view.View; import android.widget.Button; import android.widget.ImageView; public class GambarActivity extends Activity { ImageView gambar; ImageView image_content; Bundle b; String nama; MediaPlayer mp; Handler mHandler = new Handler(); private volatile Thread menyapa = new Thread(); @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated generated method stub super.onCreate(savedInstanceState); Modul Praktikum Pemrograman IV -adam_ab-2014
Hal 2
setContentView(R.layout.activity_gambar); b = getIntent().getExtras(); nama = b.getString("name"); Button TombolKembali = (Button) findViewById(R.id.button1); TombolKembali.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub menyapa.interrupt(); StopSound(); finish(); } }); gerakan_Goodbye(); } public void PlaySound(String nama) { StopSound(); int m6jrdf = getResources().getIdentifier(getPackageName() + ":raw/" + nama, null, null); mp = MediaPlayer.create(this, m6jrdf); mp.start(); } public void StopSound() { if (mp != null) { mp.release(); mp = null; } } public void gerakan_Goodbye() { // setContentView(R.layout.activity_gambar); gambar = (ImageView) findViewById(R.id.gambar); // bener Runnable lari = new Runnable() { @Override public void run() { // TODO Auto-generated method stub try { Thread.sleep(1000); Modul Praktikum Pemrograman IV -adam_ab-2014
Hal 3
mHandler.post(new Runnable() { @Override public void run() { // TODO Auto-generated method stub gambar.setImageResource(R.drawable.animasi_b); } }); Thread.sleep(2000); mHandler.post(new Runnable() { @Override public void run() { // TODO Auto-generated method stub PlaySound("sayonara"); gambar.setImageResource(R.drawable.animasi_a); } }); Thread.sleep(2000); mHandler.post(new Runnable() { @Override public void run() { // TODO Auto-generated method stub gambar.setImageResource(R.drawable.animasi_b); } }); Thread.sleep(2000); mHandler.post(new Runnable() { @Override public void run() { // TODO Auto-generated method stub PlaySound("sayonara"); gambar.setImageResource(R.drawable.animasi_a); } }); Thread.sleep(2000); mHandler.post(new Runnable() { @Override public void run() { // TODO Auto-generated method stub gambar.setImageResource(R.drawable.animasi_b);
Modul Praktikum Pemrograman IV -adam_ab-2014
Hal 4
} }); Thread.sleep(2000); mHandler.post(new Runnable() { @Override public void run() { // TODO Auto-generated method stub gambar.setImageResource(R.drawable.animasi_a); } }); Thread.sleep(2000); mHandler.post(new Runnable() { @Override public void run() { // TODO Auto-generated method stub PlaySound("sayonara"); gambar.setImageResource(R.drawable.animasi_b); } }); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }; menyapa.interrupt(); menyapa = null; menyapa = new Thread(lari); menyapa.start(); // bener } }
Modul Praktikum Pemrograman IV -adam_ab-2014
Hal 5
MainActivity.java package com.example.mencoba; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.View; import android.widget.Button; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button bGerakanTangan = (Button) findViewById(R.id.bSay); bGerakanTangan.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub //memanggil class GambarActivity.java Intent intent = new Intent(getBaseContext(),GambarActivity.class); Bundle b = new Bundle(); b.putString("name", "GoodBye"); intent.putExtras(b); startActivity(intent); } }); } }
Modul Praktikum Pemrograman IV -adam_ab-2014
Hal 6
ActivityMain.xml
Modul Praktikum Pemrograman IV -adam_ab-2014
Hal 7
Activity_gambar.xml
Jangan lupa tambahkan activity dalan androidManifest.xml
Tambahkan pula suara dalam folder “raw” yang Anda buat. Dalam project ini nama file suara adalah sayonara.mp3. Lihat struktur file di bawah ini dan Jalankan aplikasi tersebut
Modul Praktikum Pemrograman IV -adam_ab-2014
Hal 8
Tampilan di emulator
Modul Praktikum Pemrograman IV -adam_ab-2014
Hal 9
Tampilan di emulator
Aplikasi terinstall
Modul Praktikum Pemrograman IV -adam_ab-2014
Hal 10
Aplikasi SMS Main_Activity.java package com.example.kirimsms; import import import import import import import
android.app.Activity; android.os.Bundle; android.app.PendingIntent; android.content.Intent; android.telephony.SmsManager; android.view.View; android.widget.Button;
public class MainActivity extends Activity { Button btnSendSMS; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btnSendSMS = (Button) findViewById(R.id.btnSendSMS); btnSendSMS.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // sendSMS("5554","ini sms dariku lho!"); Intent i = new Intent(android.content.Intent.ACTION_VIEW); i.putExtra("5556", "5554"); i.putExtra("sms_body", "hello teman!"); i.setType("vnd.android-dir/mms-sms"); startActivity(i); } }); } // ---kirim sms ke AVD lainnya --private void sendSMS(String phoneNumber, String message) { SmsManager sms = SmsManager.getDefault(); sms.sendTextMessage(phoneNumber, null, message, null, null); } }
Modul Praktikum Pemrograman IV -adam_ab-2014
Hal 11
Activity_main.xml encoding
<Button android:id="@+id/btnSendSMS" "@+id/btnSendSMS" android:layout_width android:layout_width="fill_parent" android:layout_height android:layout_height="wrap_content" android:onClick="backtoMenu" "backtoMenu" android:layout_below android:layout_below="@id/textview" android:text="Send "Send SMS" />
Tambahkan uses permision pada AndroidManifest.xml
Jalankan aplikasi tersebut serta jalankan dua emulator
Modul Praktikum Pemrograman IV -adam_ab-2014
Hal 12
Modul Praktikum Pemrograman IV -adam_ab-2014
Hal 13