使用 Java 的安卓动画
动画是一种方法,其中一组图像以特定的方式被组合并处理,然后它们作为运动图像出现。构建动画使屏幕上的对象看起来像是活的。 安卓 有相当多的工具可以帮助你相对轻松地创建动画。所以在本文、中,让我们学习使用 Java 创建安卓动画。
属性表
| **XML 属性** | **描述** | | --- | --- | | android:id | 设置视图的唯一 id | | 安卓:持续时间 | 用于指定动画的持续时间 | | 安卓:从度 | 起始角位置(度) | | 安卓:toDegrees | 结束角度位置(度) | | android:fromXScale | 起始 X 尺寸偏移 | | android:toXScale | X 尺寸偏移的结束 | | android:fromYScale | 起始 Y 尺寸偏移 | | 安卓:toYScale | Y 尺寸偏移的结束 | | 安卓:fromAlpha | 动画的起始 alpha 值 (1.0 表示完全不透明,0.0 表示完全透明) | | 安卓:toAlpha | 结束 alpha 值 | | 安卓:fromYDelta | 要在动画开始时应用的 Y 坐标变化 | | 安卓:玩具反斗城 | 要在动画结束时应用的 Y 坐标变化 | | android:pivotX | 表示从起点开始缩放的 X 轴坐标 | | Android:pivot(旋转) | 表示从起点开始缩放的 Y 轴坐标 | | 安卓:插值器 | 它定义了动画的变化率 | | android:启动偏移 | 到达开始时间后,动画运行时会发生延迟(毫秒) |如何用 Java 在 Android 中添加动画
第一步:创建新项目
- 启动安卓工作室(版本> 2.2)
- 转到文件->新建->新建项目。
- 选择空活动,然后单击下一步
- 选择最小 SDK 为 21
- 选择 Java 语言,然后单击“完成”按钮。
- 修改以下 XML 和 java 文件。
第二步:修改 activity_main.xml 文件
在 XML 文件中,我们在相对布局中添加了图像视图、文本视图和按钮。
可扩展标记语言
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
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:id="@+id/RL1"
android:layout_height="match_parent"
tools:context=".MainActivity">
<ImageView
android:id="@+id/imageView1"
android:layout_width="200dp"
android:layout_height="150dp"
android:layout_below="@id/textView0"
android:layout_centerHorizontal="true"
android:layout_marginTop="100dp"
android:visibility="visible"
android:src="@drawable/logo2" />
<TextView
android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="4 common animations in android"
android:layout_below="@id/imageView1"
android:layout_marginTop="50dp"
android:layout_centerHorizontal="true"
android:gravity="center"
android:fontFamily="sans-serif"
android:textSize="50px"/>
<Button
android:id="@+id/button1"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:text="Blink"
android:layout_below="@id/textView1"
android:layout_marginLeft="50dp"
android:layout_marginTop="40dp"/>
<Button
android:id="@+id/button2"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:text="Slide"
android:layout_below="@id/textView1"
android:layout_alignParentRight="true"
android:layout_marginRight="50dp"
android:layout_marginTop="40dp"/>
<Button
android:id="@+id/button3"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:text="Rotate"
android:layout_below="@id/button1"
android:layout_marginLeft="50dp"
android:layout_marginTop="30dp"/>
<Button
android:id="@+id/button4"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:text="Zoom"
android:layout_below="@id/button2"
android:layout_alignParentRight="true"
android:layout_marginRight="50dp"
android:layout_marginTop="30dp"/>
</RelativeLayout>
第三步:将这些 XML 文件添加到 anim 目录
修改布局后,我们将为动画创建 XML 文件。所以我们先创建一个文件夹名 anim 。在这个文件夹中,我们将添加用于制作动画的 XML 文件。为此,请转到应用程序/res 右键单击,然后选择安卓资源目录并将其命名为动漫。
安卓系统中常见的动画类型有,
- 闪烁–隐藏对象 0.6 到 1 秒。
- 滑动–将对象垂直或水平移动到其轴上。
- 旋转–顺时针或逆时针旋转对象。
- 缩放–在 X 轴和 Y 轴上放大或缩小对象。
blinks.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="700"
android:repeatMode="reverse"
android:repeatCount="infinite"/>
</set>
rotate.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="2500" >
</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="2500" >
</rotate>
</set>
slides.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>
zoom.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="4000"
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="4000"
android:pivotX="50%"
android:pivotY="50%" >
</scale>
</set>
第四步:修改 MainActivity.java
要在安卓系统中执行动画,我们必须调用类的静态函数loadAnimation()animation utils。我们在动画对象的实例中得到结果。创建动画对象的语法:
动画对象= animation utils . load animation(getapplicationcontext()、r . animation . animation file):
要将上述动画应用于对象(比如在图像中),我们必须调用对象的 startAnimation() 方法。调用方法的语法:
ImageView 影像= findviewbyid(r . id . image id);
image.startAnimation(对象);
动画类的方法:
T32 | **方法** | **描述** | | Start animation (object) | Start animation | | Set duration (long duration) | Set the duration of the animation | | Get duration () |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 logo;
Button blink, slide, rotate, zoom;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// GFG logo
logo = findViewById(R.id.imageView1);
// blink button
blink = findViewById(R.id.button1);
// slide button
slide = findViewById(R.id.button2);
// rotate button
rotate = findViewById(R.id.button3);
// zoom button
zoom = findViewById(R.id.button4);
// blink button listener
blink.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view)
{
// call a static function loadAnimation()
// of the class AnimationUtils
Animation object
= AnimationUtils
.loadAnimation(
getApplicationContext(),
// blink file is in anim folder
R.anim.blinks);
// call the startAnimation method
logo.startAnimation(object);
}
});
// slide button listener
slide.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view)
{
// call a static function loadAnimation()
// of the class AnimationUtils
Animation object
= AnimationUtils
.loadAnimation(
getApplicationContext(),
// slide file is in anim folder
R.anim.slide);
// call the startAnimation method
logo.startAnimation(object);
}
});
// rotate button listener
rotate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view)
{
// call a static function loadAnimation()
// of the class AnimationUtils
Animation object
= AnimationUtils
.loadAnimation(
getApplicationContext(),
// rotate file is in anim folder
R.anim.rotate);
// call the startAnimation method
logo.startAnimation(object);
}
});
// zoom button listener
zoom.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view)
{
// call a static function loadAnimation()
// of the class AnimationUtils
Animation object
= AnimationUtils
.loadAnimation(
getApplicationContext(),
// zoom file is in anim folder
R.anim.zoom);
// call the startAnimation method
logo.startAnimation(object);
}
});
}
}
输出:在仿真器上运行
[https://media.geeksforgeeks.org/wp-content/uploads/20200702012037/20200702_011824.mp4](https://media.geeksforgeeks.org/wp-content/uploads/20200702012037/20200702_011824.mp4)版权属于:月萌API www.moonapi.com,转载请注明出处