Android动画教程
本教程通过一个例子解释了什么是动画以及如何在Android应用程序中使用动画。
动画
你知道什么是动画吗?动画实际上是运动的错觉。这是一种技术,在这种技术中,连续的图像差别很小,产生了运动的效果。动画在移动应用程序中非常有用。动画在教育中是用来解释理论和概念的。应用程序中的动画用于显示一些指导原则或者程序。在Android应用程序中添加动画可以增加用户的添加性。它增加了乐趣和平滑的用户体验。在本教程中,我们将学习如何通过在Android应用程序中添加动画来增加用户体验。
Android动画
Android提供了一个名为Animations的类。这个类提供了许多不同的方法。以下是其中的几个:
loadAnimation(context,layout):此方法用于加载动画。它有两个参数。
start():用于启动动画。
setDuration(long duration):此方法设置Android中动画的持续时间。
getDuration():用于获取Android动画的持续时间。
end():用于结束动画。
cancel():用于取消动画。
Android动画示例
让我们开始在Android中创建动画示例。我将讨论四种类型的动画,即闪烁、淡出、顺时针和滑动。打开你的Android工作室,创建一个新的活动。在主活动中有一个图像视图和一个按钮。我用的是足球的形象。这是活动代码_主.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:layout_width="368dp"
android:layout_height="495dp"
tools:layout_editor_absoluteX="8dp"
tools:layout_editor_absoluteY="8dp"
xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="theitroad"
android:id="@+id/textView2"
android:textColor="#ff3eff0f"
android:textSize="35dp"
android:layout_centerHorizontal="true"
<ImageView
android:layout_width="200dp"
android:layout_height="200dp"
android:id="@+id/imageView"
android:src="@drawable/football"
android:layout_below="@+id/textView2"
android:layout_alignRight="@+id/textView2"
android:layout_alignEnd="@+id/textView2"
android:layout_marginTop="50dp"
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/imageView"
android:layout_centerHorizontal="true"
android:layout_marginTop="59dp"
android:backgroundTint="@color/colorAccent"
android:onClick="Animation"
android:text="Animation"
</RelativeLayout>
现在为闪烁动画、淡入动画、顺时针动画和幻灯片动画创建四个布局文件。这是眨眼的代码_动画.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>
这里是淡出的代码_动画.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>
这是顺时针方向的代码_动画.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>
这是幻灯片的代码_动画.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>
现在创建一个java类主活动.java并粘贴以下代码
package com.example.admin.androidanimations;
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 {
int count=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void Animation(View view){
if(count==0){
ImageView image = (ImageView)findViewById(R.id.imageView);
Animation animation = AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.clockwise_animation);
image.startAnimation(animation);
}
if(count==1){
ImageView image = (ImageView)findViewById(R.id.imageView);
Animation animation1 = AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.fade_animation);
image.startAnimation(animation1);
}
if(count==2){
ImageView image = (ImageView)findViewById(R.id.imageView);
Animation animation1 =
AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.blink_animation);
image.startAnimation(animation1);
}
if(count==3){
ImageView image = (ImageView)findViewById(R.id.imageView);
Animation animation1 =
AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.slide_animation);
image.startAnimation(animation1);
count=0;
}
count++;
}
}
当第一次单击动画按钮时,用户将按顺时针方向旋转图像。当用户第二次单击count=1时,图像将淡出。当用户第三次单击count=2时,图像将开始闪烁。第四次是count=3,图像将显示幻灯片动画。

