Merhaba arkadaşlar,
Bu dersimizde Animasyon sınıfının nasıl kullanılacağını anlatacağım. Yapmış olduğum uygulamayı Android Studio ortamında geliştirdim. Android in bize sağlamış olduğu animasyon sınıfını kullanarak hem (özellik animasyonu) property animation hem de view animation (görüntü animasyonu) gibi seçenekleri uygulamamızda kullanabiliyoruz. Bu uygulamamda ise, sitemizin logosunu kullanarak, logoyu kendi etrafında ters bir şekilde döndüreceğiz daha sonradan da resmimize yakınlaşacağız.
Şimdi uygulamamızı nasıl oluşturduğumuza bakalım, projemizi oluşturduktan sonra animasyon dosyası ekleyip içinde animasyonları yönlendirecek bir xml oluşturmamız gerekiyor. Eclipse de res klasörüne sağ tıklatyıp New –> Folder dedikten sonra klasörümüzü oluşturuyorduk daha sonra oluşturduğumuz klasöre sağ tıklayarak New –> Android XML File dememiz gerekiyordu.
Fakat şimdi bu işlemlerimiz Android Studio ile daha kolay bir hale geldi. Yine res klasörüne sağ tıkladıktan sonra New –> Android resource file diyoruz karşımıza gelen bölümden Resource Type seçeneğini göreceksiniz ki, Android Studio oluşturmak istediğimiz kaynak tiplerini bizim için sıralamış bizde animasyon yapmak istediğimiz için Animator seçeneğini seçip klasöründe adını verdikten sonra işlemi tamamlıyoruz. Anim klasörü adı altında, animscreen.xml oluşturmuş olduk.
animscreen.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
xml version=“1.0” encoding=“utf-8”?> <set xmlns:android=“http://schemas.android.com/apk/res/android”
android:fillAfter=“false” android:interpolator=“@android:anim/linear_interpolator” >
<scale xmlns:android=“http://schemas.android.com/apk/res/android” android:duration=“5000” android:fromXScale=“1” android:fromYScale=“1” android:pivotX=“50%” android:pivotY=“50%” android:toXScale=“4” android:toYScale=“4” > </scale>
<rotate android:duration=“500” android:fromDegrees=“0” android:toDegrees=“360” android:pivotX=“50%” android:pivotY=“50%” android:repeatMode=“reverse” android:repeatCount=“@integer/abc_max_action_buttons”
/>
</set> |
Böylece animasyona yön verecek xml dosyamızı tamamladığımıza göre, şimdi ekranımızın tasarımı için gerekli olan layout dosyamıza bakalım. Aşağıdaki şekilde de görüldüğü gibi bir Buton ve bir tane de ImageView oluşturduk. ImageView de logomuzu tutacak ve animasyonlar onun üzerinden gerçekleşecek. Buton ile de animasyonu başlatma olayını gerçekleştireceğiz.
activity_main.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
<RelativeLayout xmlns:android=“http://schemas.android.com/apk/res/android” xmlns:tools=“http://schemas.android.com/tools” android:layout_width=“match_parent” android:layout_height=“match_parent” android:paddingLeft=“@dimen/activity_horizontal_margin” android:paddingRight=“@dimen/activity_horizontal_margin” android:paddingTop=“@dimen/activity_vertical_margin” android:paddingBottom=“@dimen/activity_vertical_margin” tools:context=“.MainActivity” android:background=“@drawable/arkaplannew”>
<LinearLayout android:orientation=“vertical” android:layout_width=“fill_parent” android:layout_height=“fill_parent”>
<ImageView android:layout_width=“wrap_content” android:layout_height=“wrap_content” android:id=“@+id/img_animate” android:src=“https://www.mobilhanem.com/@drawable/logo” android:padding=“50dp” />
<Button android:layout_width=“286dp” android:layout_height=“wrap_content” android:background=“#9e9b95” android:text=“Başlat” android:id=“@+id/bttn_start” android:layout_gravity=“center_horizontal” android:layout_margin=“120dp” /> </LinearLayout> </RelativeLayout> |
Şimdi ise, MainActivity sınıfımızı inceleyelim. Görüldüğü gibi Buton ve ImageView lerimizi oluşturduk. Animasyon işlemlerini gerçekleştirebilmemiz için de Animation sınıfımızdan animation adını verdiğimiz bir nesne oluşturduk. Oluşturduğumuz bu nesnenin animscreen.xml dosyasına ulaşabilmesi için, AnimationUtils sınıfının loadAnimation özelliğini kullanarak bu işlemi gerçekleştirdik. Buton a tıkladığımız anda ise resmimizin animasyon ile başlamasını sağlıyoruz. Kodların içine de gerekli aşamaları yaptım bakabilirsiniz. animscreen.xml dosyasını sizde istediğiniz gibi şekillendirebilirsiniz örneğin android:repeatMode=”reverse” kısmını kaldırdığınız anda yazmış olduğum kodu tekrardan çalıştırdığınız da ters olarak değilde kendi ekseni etrafında dönerek logomuz ekrana gelecektir.
android:fromDegrees = logomuzun hangi dereceden başlayarak dönmeye başlamasını istiyorsak bu kodu kullanıyoruz.
android:toDegrees = logomuzun hangi dereceye kadar dönmesini istiyorsak bu kodu kullanıyoruz.
android:duration = animasyon süresinin ne kadar olmasını istiyorsak kullanıyoruz.
MainActivity.java
package com.mobilhanem.myapplication;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.ImageView;
public class MainActivity extends Activity implements Animation.AnimationListener {
public Animation animation;
public ImageView img;
public Button bttn;
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation anim) {
if(anim==animation)
{
//img.setBackgroundColor(Color.BLUE);
bttn.setBackgroundColor(Color.BLUE);
}
}
@Override
public void onAnimationRepeat(Animation anim) {
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
img = (ImageView)findViewById(R.id.img_animate);
bttn = (Button)findViewById(R.id.bttn_start);
// animasyon xml dosyasını ekliyoruz böylece animasyonumuzu animation objemize yüklemiş olduk
animation = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.animscreen);
animation.setAnimationListener(this);
bttn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Butona tıkladığımız anda ise, resmimizin animasyon özelliği ile başlamasını sağlıyoruz.
img.startAnimation(animation);
}
});
}
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
package com.mobilhanem.myapplication;
import android.app.Activity; import android.graphics.Color; import android.os.Bundle; import android.view.View; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.Button; import android.widget.ImageView;
public class MainActivity extends Activity implements Animation.AnimationListener {
public Animation animation; public ImageView img; public Button bttn;
@Override public void onAnimationStart(Animation animation) {
}
@Override public void onAnimationEnd(Animation anim) {
if(anim==animation) { //img.setBackgroundColor(Color.BLUE); bttn.setBackgroundColor(Color.BLUE); }
}
@Override public void onAnimationRepeat(Animation anim) {
}
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
img = (ImageView)findViewById(R.id.img_animate); bttn = (Button)findViewById(R.id.bttn_start);
// animasyon xml dosyasını ekliyoruz böylece animasyonumuzu animation objemize yüklemiş olduk animation = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.animscreen); animation.setAnimationListener(this);
bttn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) {
// Butona tıkladığımız anda ise, resmimizin animasyon özelliği ile başlamasını sağlıyoruz. img.startAnimation(animation);
} });
}
} |
Kaynak kodu da ekliyorum bu yüzden uygulamayı indirip çalıştırırsanız tam olarak ne anlattığımı daha iyi bir şekilde de anlamış olursunuz.
Android Animasyon Sınıfı
Evet arkadaşlar bu dersimde anlatmak istediklerim bu kadar. Konu hakkında soru ve önerilerinizi çekinmeden yorum bırakabilirsiniz. Bol Android’li günler sizin olsun
Sizlerden ricamız facebook.com/mobilhanem sayfamızı beğenmenizdir. Diğer dersimizde görüşmek dileğiyle kendinize iyi bakın.
Tüm Android Ders, Proje ve Kaynak Kodlar için tıklayınız.
0