动画是将运动效果添加到任何视图,图像或文本的过程。借助动画,您可以添加运动或更改特定视图的形状。 Android中的动画通常用于为UI提供丰富的外观。动画基本上分为以下三种类型:
- 物业动画
- 查看动画
- 可绘制动画
1.属性动画
属性动画是可以对几乎所有内容进行动画处理的强大框架之一。这是Android 3.0中引入的功能强大且灵活的动画之一。属性动画可用于在CheckBox,RadioButtons和窗口小部件中添加除任何视图之外的任何动画。
2.查看动画
视图动画可用于将动画添加到特定视图,以对视图执行补间动画。补间动画会计算动画信息,例如大小,旋转,起点和终点。这些动画较慢且较不灵活。如果我们要在该位置扩展特定的布局,可以使用View动画的示例。可以在Expandable RecyclerView中看到“查看动画”的示例。
3.绘画动画
如果要在一个图像上设置另一个图像的动画,则使用“可绘制动画”。了解动画的简单方法是为drawable设置动画,一个接一个地加载一系列drawable来创建动画。可在许多应用程序的启动屏幕上看到可绘制动画的简单示例,该屏幕位于应用程序徽标动画上。
动画的重要方法
Methods |
Description |
---|---|
startAnimation() | This method will start the animation. |
clearAnimation() | This method will clear the animation running on a specific view. |
例子
现在,我们将看到将动画添加到ImageView的简单示例。注意,我们将使用Java语言实现该项目。
步骤1:创建一个新项目
要在Android Studio中创建新项目,请参阅如何在Android Studio中创建/启动新项目。请注意,选择Java作为编程语言。
步骤2:使用字符串.xml文件
可以从应用程序> res>值>字符串.xml中找到Strings.xml。以下是.xml字符串文件的代码段。
XML
GFG App
BLINK
ROTATE
FADE
MOVE
SLIDE
ZOOM
STOP ANIMATION
Course Rating
Course Name
XML
XML
XML
XML
XML
XML
XML
Java
import androidx.appcompat.app.AppCompatActivity;
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 AppCompatActivity {
ImageView imageView;
Button blinkBTN, rotateBTN, fadeBTN, moveBTN, slideBTN, zoomBTN, stopBTN;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView = findViewById(R.id.imageview);
blinkBTN = findViewById(R.id.BTNblink);
rotateBTN = findViewById(R.id.BTNrotate);
fadeBTN = findViewById(R.id.BTNfade);
moveBTN = findViewById(R.id.BTNmove);
slideBTN = findViewById(R.id.BTNslide);
zoomBTN = findViewById(R.id.BTNzoom);
stopBTN = findViewById(R.id.BTNstop);
blinkBTN.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// To add blink animation
Animation animation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.blink_animation);
imageView.startAnimation(animation);
}
});
rotateBTN.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// To add rotate animation
Animation animation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.rotate_animation);
imageView.startAnimation(animation);
}
});
fadeBTN.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// To add fade animation
Animation animation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.fade_animation);
imageView.startAnimation(animation);
}
});
moveBTN.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// To add move animation
Animation animation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.move_animation);
imageView.startAnimation(animation);
}
});
slideBTN.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// To add slide animation
Animation animation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.slide_animation);
imageView.startAnimation(animation);
}
});
zoomBTN.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// To add zoom animation
Animation animation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.zoom_animation);
imageView.startAnimation(animation);
}
});
stopBTN.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// To stop the animation going on imageview
imageView.clearAnimation();
}
});
}
}
步骤3:使用activity_main.xml文件
在activity_main.xml中创建ImageView以及将向视图添加动画的按钮。导航到应用程序> res>布局> activity_main.xml 。以下是activity_main.xml文件的代码。
XML格式
步骤4:为ImageView创建6种不同类型的动画
要创建新动画,我们必须创建一个新目录来存储所有动画。导航到应用程序> res>右键单击res >>新建>>目录>>将目录命名为“ anim” 。在此目录中,我们将创建动画。要创建新动画,请在动画目录>>动画资源文件上单击鼠标右键,然后为文件指定名称。以下是6种不同动画的代码片段
1)眨眼动画
XML格式
2)淡入淡出动画
XML格式
3)移动动画
XML格式
4)旋转动画
XML格式
5)幻灯片动画
XML格式
6)缩放动画
XML格式
步骤5:使用MainActivity。 Java文件
通过单击特定的按钮将动画添加到ImageView。导航到应用程序> Java >您的应用程序包名称>> MainActivity。 Java的。
Java
import androidx.appcompat.app.AppCompatActivity;
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 AppCompatActivity {
ImageView imageView;
Button blinkBTN, rotateBTN, fadeBTN, moveBTN, slideBTN, zoomBTN, stopBTN;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView = findViewById(R.id.imageview);
blinkBTN = findViewById(R.id.BTNblink);
rotateBTN = findViewById(R.id.BTNrotate);
fadeBTN = findViewById(R.id.BTNfade);
moveBTN = findViewById(R.id.BTNmove);
slideBTN = findViewById(R.id.BTNslide);
zoomBTN = findViewById(R.id.BTNzoom);
stopBTN = findViewById(R.id.BTNstop);
blinkBTN.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// To add blink animation
Animation animation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.blink_animation);
imageView.startAnimation(animation);
}
});
rotateBTN.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// To add rotate animation
Animation animation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.rotate_animation);
imageView.startAnimation(animation);
}
});
fadeBTN.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// To add fade animation
Animation animation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.fade_animation);
imageView.startAnimation(animation);
}
});
moveBTN.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// To add move animation
Animation animation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.move_animation);
imageView.startAnimation(animation);
}
});
slideBTN.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// To add slide animation
Animation animation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.slide_animation);
imageView.startAnimation(animation);
}
});
zoomBTN.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// To add zoom animation
Animation animation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.zoom_animation);
imageView.startAnimation(animation);
}
});
stopBTN.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// To stop the animation going on imageview
imageView.clearAnimation();
}
});
}
}
Note: Drawables and strings can be found in the drawable folder and strings.xml file. Drawables can be found from the app > res > drawable.