This article takes a simple AlphaAnimation ("fade in and out (transparency change)" animation) as an example to briefly explain the two loading and execution methods of Android animation Animation:
(1) Directly write Java code and create Android animation.
(2) Write XML configuration file, load XML resource file and execute.
In fact, the two are consistent. You know, in Android, any View that can be completed in an XML file can also be completely written in code.
Now let’s give an animation AlphaAnimation completed by Java code. AlphaAnimation has a simple function. In short, it can make a View change from one transparency to another within a given period of time. 0.0f is completely transparent, 1.0f is completely opaque.
A. The first method is to write Java code to implement it.
The main Activity used for testing is very simple. It is a TextView displayed in the center, displaying a string of text: Android animation. The TextView gradually changes from completely transparent to completely opaque within 3 seconds after it is started. MainActivity.java:
package zhangphil.animation;import android.app.Activity;import android.os.Bundle;import android.view.animation.AlphaAnimation;import android.view.animation.AnimationSet;import android.widget.TextView;public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView text = (TextView) findViewById(R.id.text); // “淡入淡出”动画。 // 0.0f,完全透明, // 1.0f,完全不透明。 AlphaAnimation alphaAnimation = new AlphaAnimation(0.0f, 1.0f); alphaAnimation.setDuration(3000); // 动画集。 AnimationSet animationSet = new AnimationSet(false); animationSet.addAnimation(alphaAnimation); // 开始播放动画。 text.startAnimation(animationSet); }}
activity_main.xml layout file required by MainActivity.java:
<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" > <TextView android:id="@+id/text" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerVertical="true" android:gravity="center" android:textSize="30sp" android:text="Android动画" /></RelativeLayout>
This is the first way to write Java code.
B. The second method is to write an XML file to implement it.
Introducing the second XML writing method. MainAvtivity.java:
package zhangphil.animation;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 { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView text = (TextView) findViewById(R.id.text); // 初始化需要加载的动画资源 Animation animation = AnimationUtils .loadAnimation(this, R.anim.my_anim); // 将TextView执行Animation动画 text.startAnimation(animation); }}
The activity_main.xml file required by MainActivity.java is the same as A above without any modification.
The complex code work is transferred to the XML that defines the anim.
First, you need to create an anim folder in the res/ directory and create an Android resource file in it. Assume that the name is customized to my_anim.xml. The directory structure hierarchy is as shown in the figure:
2. The control element set code required to complete the animation, the specific code of my_anim.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:duration="3000" android:fromAlpha="0" android:toAlpha="1.0" /> <!-- 透明度控制动画效果 alpha 浮点型值: fromAlpha 动画起始时透明度 toAlpha 动画结束时透明度 说明: 0.0表示完全透明 1.0表示完全不透明 以上值取0.0-1.0之间的float数据类型的数字 整数: duration 动画持续时间 说明: 时间以毫秒为单位 --></set>