Android Animasyon Sınıfı Kullanımı

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

<?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

<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="@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);

            }
        });




    }



}

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ı
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

Alper Beyler

Yüksek Lisans: Çankaya Üniversitesi / Bilgisayar Mühendisliği
Lisans: Çankaya Üniversitesi / Bilgisayar Mühendisliği (4/3.30) (2010-2014)
Lisans : Viyana Teknik Üniversitesi / Bilgisayar Bilimleri (2013)

Yorum Yaz

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?