Android Splash Screen Animasyonu

Bu yazımda Android uygulamalarında sıkça gördüğümüz açılış ekranı yapacağız.Animasyonumuz sağdan sola doğru opaklığı artarak gelen bir yazı animasyonu olacak.Açılış ekranı uygulama için önemlidir.Çünkü açılırken kullanıcıya hem bilgi verebilir hem de işlem yaptırabilirsiniz.

Açılış ekranında isterseniz xml ile çeşitli animasyonlar yapabilirsiniz.Xml ile animasyon yapmak için res klasörü içinde anim klasörü oluşturup o klasör içinde animasyon dosyalarımızı hazırlamamız gerecektir.İsterseniz res klasöründe sağ tıklayıp New / Android resource file diyerek de yeni bir animasyon dosyası oluşturabilirsiniz.Dikkat edilmesi gerek husus ise Resource type kısmının animation yapılması gerekmektedir.

 

Dosyamızı oluşturduktan sonra animasyon oluşturmak için bazı xml etiketleri vardır.Translate,alpha,rotate gibi animasyon oluşturmak için bazı etiketler vardır.Ben burda translate ve alpha etiketlerini kullanacağım.

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:duration="3000"
        android:fromXDelta="200%"
        android:fromYDelta="0%"
        android:interpolator="@android:anim/linear_interpolator"
        android:toXDelta="0%"
        android:toYDelta="0%" />
    <alpha
        android:duration="3000"
        android:fromAlpha="0.0"
        android:interpolator="@android:anim/decelerate_interpolator"
        android:toAlpha="1.0" />
</set>

Translate etiketi içerisinde sağ taraftan sol tarafa gelmesi sağlanacaktır.Bunun için X kordinatından 200% diyoruz.Burda 100% dersek ekran dışından gelmemiş olur.Burda fromxDelta ile x konumundan 200%’den başla diyoruz.toXDelta ile de x 0% konuma git diyoruz.Yani yazımız ekran dışından ilk konuma gelmiş oluyor.Duration ise animasyonu kaç saniyeye yayacağını belirler.1000 yazarsanız bu 1 saniye demektir.

Alpha etiketi ise sağdan sola giderken renk açılarak gelmesi için opaklık vermemize yarayacak.Burda ise 0.0’dan 1.0 alphaya gel diyoruz.1.0 100% opaklık demektir.

Şimdi activity içinde animasyonu nasıl tanımlarız ve ilk açılışta aktif hale getiririz ona yapalım.

Öncelikle activity’nin görünüm dosyasında bir adet Textview ekleyelim ve animasyonumuzu bir yazıya uygulayalım.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    tools:context="net.fatihdemirag.calisma.MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="fatihdemirag.net"
        android:textSize="24dp"
        android:textStyle="bold"
        android:id="@+id/yazi"/>

</LinearLayout>

Textview’i ekledik.Eklediğimiz Textview’i tam ortaya aldım ki sonucu daha rahat görebilelim.Burda id vermeyi kesinlikle unutmamalıyız.İd vermezsek kodlarımız içinden görünüm öğesini bulamayız.

package net.fatihdemirag.calisma;

import android.app.Activity;
import android.os.Bundle;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.TextView;

public class MainActivity extends Activity {

    TextView yazi;

    Animation splashAnimasyonu;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        yazi=findViewById(R.id.yazi);

        splashAnimasyonu= AnimationUtils.loadAnimation(getApplicationContext(),R.anim.splash_animasyon);

        yazi.startAnimation(splashAnimasyonu);

    }
}

Textview nesnesine isim verip xml kısmında verdiğimiz id ile birbirini eşleştiriyoruz.

yazi=findViewById(R.id.yazi);

Animasyon nesnemizi ise AnimationUtils ile oluşturup loadAnimation içerisinde context ve animasyon dosyasının yolunu veriyoruz.

splashAnimasyonu= AnimationUtils.loadAnimation(getApplicationContext(),R.anim.splash_animasyon);

Daha sonra yazi öğesinin startAnimation metodunu kullanarak animasyonu başlatıyoruz.

yazi.startAnimation(splashAnimasyonu);

İsterseniz animasyonun başladığınıi,bittiğini ve tekrar ettiğini listener ile dinleyebilirsiniz.Örneğin animasyon bittiğinde farklı bir activity açtırabilirsiniz.

splashAnimasyonu.setAnimationListener(new Animation.AnimationListener() {
    @Override
    public void onAnimationStart(Animation animation) {

    }

    @Override
    public void onAnimationEnd(Animation animation) {

    }

    @Override
    public void onAnimationRepeat(Animation animation) {

    }
});

Ve sonucumuz bu şekilde olacaktır.İyi çalışmalar ve iyi kodlamalar.?

Yukarı Çık
Size nasıl yardımcı olabilirim ?