Android - Animasyonlar
Animasyon, hareket ve şekil değişikliği yaratma sürecidir
Android'de animasyon birçok yönden mümkündür. Bu bölümde, arası doldurulmuş animasyon adı verilen animasyon yapmanın kolay ve yaygın olarak kullanılan bir yolunu tartışacağız.
Ara Animasyon
Tween Animation, başlangıç değeri, bitiş değeri, boyut, süre, dönüş açısı gibi bazı parametreleri alır ve o nesne üzerinde gerekli animasyonu gerçekleştirir. Her tür nesneye uygulanabilir. Bunu kullanmak için android bize Animasyon adlı bir sınıf sağladı.
Android'de animasyon gerçekleştirmek için AnimationUtils sınıfının statik bir fonksiyonunu loadAnimation () çağıracağız. Sonucu bir Animasyon Nesnesi örneğinde alacağız. Söz dizimi aşağıdaki gibidir -
Animation animation = AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.myanimation);
İkinci parametreye dikkat edin. Animasyon xml dosyamızın adıdır. Adlı yeni bir klasör oluşturmalısınızanim res dizini altında ve anim klasörü altında bir xml dosyası oluşturun.
Bu animasyon sınıfı, aşağıda listelenen birçok yararlı işleve sahiptir -
Sr.No | Yöntem ve Açıklama |
---|---|
1 | start() Bu yöntem animasyonu başlatır. |
2 | setDuration(long duration) Bu yöntem, bir animasyonun süresini ayarlar. |
3 | getDuration() Bu yöntem, yukarıdaki yöntemle belirlenen süreyi alır. |
4 | end() Bu yöntem animasyonu sonlandırır. |
5 | cancel() Bu yöntem, animasyonu iptal eder. |
Bu animasyonu bir nesneye uygulamak için, nesnenin startAnimation () yöntemini çağıracağız. Sözdizimi -
ImageView image1 = (ImageView)findViewById(R.id.imageView1);
image.startAnimation(animation);
Misal
Aşağıdaki örnek, Android'de Animasyon kullanımını gösterir. Menüden farklı bir animasyon türü seçebileceksiniz ve seçilen animasyon ekrandaki bir imageView'a uygulanacaktır.
Bu örneği denemek için, bunu bir emülatörde veya gerçek bir cihazda çalıştırmanız gerekir.
Adımlar | Açıklama |
---|---|
1 | Bir Android uygulaması oluşturmak için Android studio IDE'yi kullanacak ve bunu com.example.sairamkrishna.myapplication paketinin altında Uygulamam olarak adlandıracaksınız. |
2 | Animasyon kodu eklemek için src / MainActivity.java dosyasını değiştirin |
3 | Düzen XML dosyasını değiştirin res / layout / activity_main.xml gerekirse herhangi bir GUI bileşeni ekleyin. |
4 | Res dizini altında yeni bir klasör oluşturun ve onu anim olarak adlandırın. Res / anim'i ziyaret ederek doğrulayın |
5 | Animasyona sağ tıklayın ve yeniye tıklayın ve Android XML dosyasını seçin. Aşağıda listelenen farklı dosyalar oluşturmanız gerekir. |
6 | Myanimation.xml, clockwise.xml, fade.xml, move.xml, blink.xml, slide.xml dosyaları oluşturun ve XML kodunu ekleyin. |
7 | Varsayılan dize sabitlerini değiştirmeye gerek yoktur. Android stüdyo, values / string.xml'de varsayılan sabitlerle ilgilenir. |
8 | Uygulamayı çalıştırın ve çalışan bir android cihaz seçin ve üzerine uygulamayı yükleyin ve sonuçları doğrulayın. |
İşte değiştirilmiş kodu MainActivity.java.
package com.example.sairamkrishna.myapplication;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void clockwise(View view){
ImageView image = (ImageView)findViewById(R.id.imageView);
Animation animation = AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.myanimation);
image.startAnimation(animation);
}
public void zoom(View view){
ImageView image = (ImageView)findViewById(R.id.imageView);
Animation animation1 = AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.clockwise);
image.startAnimation(animation1);
}
public void fade(View view){
ImageView image = (ImageView)findViewById(R.id.imageView);
Animation animation1 =
AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.fade);
image.startAnimation(animation1);
}
public void blink(View view){
ImageView image = (ImageView)findViewById(R.id.imageView);
Animation animation1 =
AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.blink);
image.startAnimation(animation1);
}
public void move(View view){
ImageView image = (ImageView)findViewById(R.id.imageView);
Animation animation1 =
AnimationUtils.loadAnimation(getApplicationContext(), R.anim.move);
image.startAnimation(animation1);
}
public void slide(View view){
ImageView image = (ImageView)findViewById(R.id.imageView);
Animation animation1 =
AnimationUtils.loadAnimation(getApplicationContext(), R.anim.slide);
image.startAnimation(animation1);
}
}
İşte değiştirilmiş kodu res/layout/activity_main.xml.
Burada abc, tutorialspoint logosunu gösterir
<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">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Alert Dialog"
android:id="@+id/textView"
android:textSize="35dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Tutorialspoint"
android:id="@+id/textView2"
android:textColor="#ff3eff0f"
android:textSize="35dp"
android:layout_below="@+id/textView"
android:layout_centerHorizontal="true" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView"
android:src="@drawable/abc"
android:layout_below="@+id/textView2"
android:layout_alignRight="@+id/textView2"
android:layout_alignEnd="@+id/textView2"
android:layout_alignLeft="@+id/textView"
android:layout_alignStart="@+id/textView"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="zoom"
android:id="@+id/button"
android:layout_below="@+id/imageView"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginTop="40dp"
android:onClick="clockwise"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="clockwise"
android:id="@+id/button2"
android:layout_alignTop="@+id/button"
android:layout_centerHorizontal="true"
android:onClick="zoom"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="fade"
android:id="@+id/button3"
android:layout_alignTop="@+id/button2"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:onClick="fade"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="blink"
android:onClick="blink"
android:id="@+id/button4"
android:layout_below="@+id/button"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="move"
android:onClick="move"
android:id="@+id/button5"
android:layout_below="@+id/button2"
android:layout_alignRight="@+id/button2"
android:layout_alignEnd="@+id/button2"
android:layout_alignLeft="@+id/button2"
android:layout_alignStart="@+id/button2" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="slide"
android:onClick="slide"
android:id="@+id/button6"
android:layout_below="@+id/button3"
android:layout_toRightOf="@+id/textView"
android:layout_toEndOf="@+id/textView" />
</RelativeLayout>
İşte kodu res/anim/myanimation.xml.
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXScale="0.5"
android:toXScale="3.0"
android:fromYScale="0.5"
android:toYScale="3.0"
android:duration="5000"
android:pivotX="50%"
android:pivotY="50%" >
</scale>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:startOffset="5000"
android:fromXScale="3.0"
android:toXScale="0.5"
android:fromYScale="3.0"
android:toYScale="0.5"
android:duration="5000"
android:pivotX="50%"
android:pivotY="50%" >
</scale>
</set>
İşte kodu res/anim/clockwise.xml.
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="0"
android:toDegrees="360"
android:pivotX="50%"
android:pivotY="50%"
android:duration="5000" >
</rotate>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:startOffset="5000"
android:fromDegrees="360"
android:toDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:duration="5000" >
</rotate>
</set>
İşte kodu res/anim/fade.xml.
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator" >
<alpha
android:fromAlpha="0"
android:toAlpha="1"
android:duration="2000" >
</alpha>
<alpha
android:startOffset="2000"
android:fromAlpha="1"
android:toAlpha="0"
android:duration="2000" >
</alpha>
</set>
İşte kodu res/anim/blink.xml.
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha android:fromAlpha="0.0"
android:toAlpha="1.0"
android:interpolator="@android:anim/accelerate_interpolator"
android:duration="600"
android:repeatMode="reverse"
android:repeatCount="infinite"/>
</set>
İşte kodu res/anim/move.xml.
<?xml version="1.0" encoding="utf-8"?>
<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator"
android:fillAfter="true">
<translate
android:fromXDelta="0%p"
android:toXDelta="75%p"
android:duration="800" />
</set>
İşte kodu res/anim/slide.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:fillAfter="true" >
<scale
android:duration="500"
android:fromXScale="1.0"
android:fromYScale="1.0"
android:interpolator="@android:anim/linear_interpolator"
android:toXScale="1.0"
android:toYScale="0.0" />
</set>
İşte değiştirilmiş kodu res/values/string.xml.
<resources>
<string name="app_name">My Application</string>
</resources>
İşte varsayılan kodu AndroidManifest.xml.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.sairamkrishna.myapplication" >
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.animation.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Uygulamanızı çalıştırmayı deneyelim. Gerçek Android Mobil cihazınızı bilgisayarınıza bağladığınızı varsayıyorum. Uygulamayı Android stüdyosundan çalıştırmak için, projenizin etkinlik dosyalarından birini açın
Yakınlaştırma düğmesini seçin, aşağıdaki ekranı gösterecektir -
Şimdi slayt düğmesini seçin, aşağıdaki ekranı gösterecektir
Şimdi hareket düğmesini seçin, aşağıdaki ekran görüntülenecektir
Şimdi saat yönünde buton, aşağıdaki ekranı gösterecek
Şimdi Fade düğmesi, aşağıdaki ekranı gösterecek
Not - Emülatörde çalıştırırsanız, düzgün animasyon efekti deneyimlemeyebilirsiniz. Sorunsuz animasyonu deneyimlemek için android cep telefonunuzda çalıştırmanız gerekir.