Top Banner
@agatestudio Tweening in Android Neneng Knight Agate Studio
15

Tween Animation by Neneng

May 14, 2015

Download

Education

Agate Studio
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Tween Animation by Neneng

@agatestudio

Tweening in Android

Neneng

Knight

Agate Studio

Page 2: Tween Animation by Neneng

Tweening in Android~ MAKE YOUR ANDROID’S APPS MORE “WOW” IN ANDROID “NATIVE” CODES ~

Page 3: Tween Animation by Neneng

Apa itu (motion) tween?◦ Membuat objek yang dituju berubah dengan

animasi

◦ Bentuk perubahan yang umum dipakai :◦ Posisi (moving/translating)

◦ Nilai transparan (opacity/alpha)

◦ Ukuran (scaling)

◦ Arah rotasi (rotating)

◦ Bisa juga menerapkan perubahan lainnya, sesuai dengan parameter objek umumnya

Page 4: Tween Animation by Neneng

Macam tween (kuantitas)◦ Single tween

◦ Multiple tween◦ Animasi secara berurutan

◦ Animasi secara bersamaan

Page 5: Tween Animation by Neneng

Macam tween (target/objek)◦ Property animation

◦ Objek bisa berupa apa saja (co : layout, button, shape)

◦ Parameter mengikuti parameter yang berlaku pada objek tersebut

◦ View animation◦ Objek berupa view (co : ImageView, TextView)

◦ Parameter umum

Page 6: Tween Animation by Neneng

Parameter Animation (Part 1)• Cocok untuk mengubah parameter objek yang

lebih spesifik• Co : ubah width objek saja, ubah warna

foreground/background objek

• Bisa menentukan pada frame berapa, nilai objek berubah menjadi berapa• Dengan interpolasi/efek transisi atau mengatur nilai

frame manual• Nilai frame dinyatakan antara 0 sampai 1• Nilai persen dari total durasi. Co : frame 0.2 = 20% *

totalDurasi

Page 7: Tween Animation by Neneng

Parameter Animation (Part 2)• Untuk beberapa jenis objek, harus membuat

class mencakup getter-setter untuk beberapa parameter• Co : untuk mengubah warna shape, fungsi asli

shape.getPaint().setColor(Value) dibuat menjadi variabel getter-setter color()

• Method yang dipakai bergantung pada jenis nilai parameter (ofInt() = integer, ofFloat() = float, ofObject())

• Kurang cocok untuk membuat tween karena akan membuat banyak line/kode yang panjang, hampir sama dan berulang

Page 8: Tween Animation by Neneng

Parameter Animation (Part 3)Contoh kode pakai :

//draw objek bulat; Shape berupa class berisi objek drawable

Shape circle = new Shape (circleDraw);/* ubah warna dari merah ke hijau dalam durasi 1 detik;warna RED dan GREEN sudah dideklarasi di value sheet. Pakai “.ofInt”

karena berupa integer’parameter “color” dibuat dengan getter-setter untuk mengubah warna

shape;deklarasi : new ObjectAnimator.ofInt(namaObjek, namaParameter,

nilaiAwal, nilaiAkhir) */

ValueAnimator changeColor = new ObjectAnimator.ofInt(circleDraw, “color”, R.color.RED, R.color.Green);

changeColor.setDuration(1000); //1 detik dalam ms

changeColor.start(); //mulai animasi

Page 9: Tween Animation by Neneng

View Animation (Part 1)• Cocok untuk mengubah parameter objek yang

berpasangan• Co : mengubah posisi (x,y), ukuran (scaleX, scaleY)

• Cocok untuk tween karena sudah tersedia class jenis tween yang umum dipakai => line kode lebih pendek dan efisien• TranslateAnimation => moving• AlphaAnimation => alpha/opacity• ScaleAnimation => scaling• RotateAnimation => rotating

Page 10: Tween Animation by Neneng

View Animation (Part 2)• Hanya bisa dipakai pada objek turunan dari

View (TextView, ImageView, dsb)

• Tidak bisa mengatur waktu antar frame secara langsung/manual. Hanya bisa memakai efek translasi yang sudah ada (namun bisa membuat efek translasi sendiri)

Page 11: Tween Animation by Neneng

View Animation (Part 3)Contoh kode pakai :

/* buat objek image; sudah dideklarasi lebih dulu di layout, anggap posisi ada di pojok atas kiri */

ImageView pic = (ImageView) findViewById(R.id.my_image);

/* posAwal = (postX-10px, postY+20px) //geser posisi awal dulu sebelum animasi, int

posAkhir = (postX+50px, postY+200px) //posisi akhir berdasarkan posisi sekarang, int

deklarasi : new TranslateAnimation(difPosAwalX, difPosAkhirX, difPosAwalY, difPosAkhirY); */

TranslateAnimation moving = new TranslateAnimation(-10, 50, 20, 200);

moving.setDuration(1000); //1 detik dalam ms

pic. startAnimation(moving); //tempel + mulai animasi

Page 12: Tween Animation by Neneng

Multiple Tween• Memakai class AnimationSet (untuk View Animation) dan AnimatorSet (untuk Parameter Animation) untuk membungkus banyak single tween

• AnimationSet dan AnimatorSet punya cara berbeda untuk mengatur jalan animasi

Page 13: Tween Animation by Neneng

Multiple Tween (Sequential)•AnimationSet• Tidak ada parameter khusus untuk mengatur

behaviour animasi

• Bisa diakali dengan men-delay waktu mulai setiap single tween dengan startOffset()

• AnimatorSet• Ada parameter khusus untuk mengatur behaviour

animasi

• Diatur secara berurutan mulai dari animasi pertama, diikuti dengan method before() dan atau after()

• Contoh : animSet.play(anim1).before(anim2).before(anim3)

Page 14: Tween Animation by Neneng

Multiple Tween (Simultaneous)• AnimationSet• Cukup dengan menambahkan animasi, saat start

akan mulai bersamaan• Contoh :

animSet.addAnimation(anim1);animSet.addAnimation(anim2);

• AnimatorSet• Ada parameter khusus untuk mengatur behaviour

animasi• Diatur mulai dari animasi pertama, diikuti dengan

method with()• Contoh : animSet.play(anim1).with(anim2).with(anim3)

Page 15: Tween Animation by Neneng

Terima Kasih