この記事では、単純な AlphaAnimation (「フェードインとフェードアウト (透明度の変更)」アニメーション) を例として、Android アニメーション アニメーションの 2 つの読み込み方法と実行方法を簡単に説明します:
(1) Java コードを直接記述して Android アニメーションを作成する。
(2) XML設定ファイルを記述し、XMLリソースファイルをロードして実行します。
実際、この 2 つは一貫しています。ご存知のとおり、Android では、XML ファイルで完成できるビューはすべて、コードで完全に記述することもできます。
次に、Java コードで完成したアニメーションを与えてみましょう。 AlphaAnimation は、簡単に言うと、一定時間内にある透明度から別の透明度にビューを変更することができます。 0.0f は完全に透明、1.0f は完全に不透明です。
A. 1 つ目の方法は、Java コードを記述して実装することです。
テストに使用されるメインのアクティビティは非常に単純で、テキストの文字列を表示する TextView が中央に表示されるだけです。TextView は、開始後 3 秒以内に完全に透明から完全に不透明に徐々に変化します。 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); }}
MainActivity.java には activity_main.xml レイアウト ファイルが必要です:
<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>
これは、Java コードを記述する最初の方法です。
B. 2 番目の方法は、XML ファイルを作成して実装することです。
XML を記述する 2 番目の方法を紹介します。 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); }}
MainActivity.java に必要な activity_main.xml ファイルは、変更を加えることなく上記の A と同じです。
複雑なコード作業は、anim を定義する XML に転送されます。
まず、res/ ディレクトリに anim フォルダーを作成し、その中に Android リソース ファイルを作成する必要があります。名前は my_anim.xml にカスタマイズされているとします。ディレクトリ構造の階層は図に示すとおりです。
2 番目、アニメーションを完了するために必要な制御要素セット コード、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>