Androidアニメーション(フラッシュ、左右スイング、上下スイングなどの効果)
本論文の転送先:http://www.eoeandroid.com/forum.php?mod=viewthread&tid=117094&highlight=
一、続き (名前が分かりませんが、先にアニメAを放送して、その後アニメBを放送します.) 二つの方法があります 一つは、二つのアニメ、AとBをそれぞれアニメ化して、まずアニメAを放送して、AのアニメイトListenerを設定します.アニメイトEndがトリガ(つまりA再生終了)すると、Bの再生が開始されます.
一、続き (名前が分かりませんが、先にアニメAを放送して、その後アニメBを放送します.) 二つの方法があります 一つは、二つのアニメ、AとBをそれぞれアニメ化して、まずアニメAを放送して、AのアニメイトListenerを設定します.アニメイトEndがトリガ(つまりA再生終了)すると、Bの再生が開始されます.
animation1.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationRepeat(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
animation2.start();
}
);
二つ目は、アニメイトセットを書く場合、アニメAとBを定義し、アニメBのためにstartOffsetを設定します.その値は前のアニメの放送に必要な時間です. ここで一例を挙げると、アニメーションAは透明度が0.1から1.0までで、アニメーションBは透明度が1.0から0.1までです. 次のアニメーションセットを使って、変化の過程を全部見ることができます.<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
android:fromAlpha="0.2"
android:toAlpha="1.0"
android:duration="3000"
/>
<alpha
android:startOffset="3000"
android:fromAlpha="1.0"
android:toAlpha="0.2"
android:duration="3000"
/>
</set>
その中のアンディ:startOffset=3000 3秒遅れてから実行するという意味です.その中のandroid:startOffset=3000を取れば、あなたはどんな効果も見えなくなります.二つのアニメが同時に放送されるからです.二、サイクル 時々、写真の点滅機能(天気予報の緊急警報機能など)を実現する必要があります. あるいは時には左右に揺れるイメージを実現する必要があります.循環動画で実現する必要があります. 同じように、二つの方法があります.一つは、二つのアニメーションAとBを設置し、アニメーションAは透明度0-1であり、アニメーションBは1-0であり、その両方をモニターし、AはBを終了し、BはA.無限ループを実行します.点滅(透明度が明るい→暗い→暗い→明るい)のように循環します.//
AlphaAnimation alphaAnimation1 = new AlphaAnimation(0.1f, 1.0f);
alphaAnimation1.setDuration(3000);
alphaAnimation1.setRepeatCount(Animation.INFINITE);
alphaAnimation1.setRepeatMode(Animation.REVERSE);
iv.setAnimation(alphaAnimation1);
alphaAnimation1.start();
alpha Animation 1.set Repeat Count(Animation.INFINITE);何度も繰り返すことを表す.具体的に繰り返される回数を設定することもできます.例えば、アルファAnimation 1.set Repeat Count(5)alpha Animation 1.setRepeat Mode(Animation.REVERSE);アニメーションが終わったら、逆に実行するという意味です.この方法は2つの値、RESTART、REVERSEがある.RESTARTは最初から、REVERSEは最後から逆放送すると表しています.左右にゆれるように//
TranslateAnimation alphaAnimation2 = new TranslateAnimation(150f, 350f, 50, 50);
alphaAnimation2.setDuration(1000);
alphaAnimation2.setRepeatCount(Animation.INFINITE);
alphaAnimation2.setRepeatMode(Animation.REVERSE);
iv.setAnimation(alphaAnimation2);
alphaAnimation2.start();
そのうちivはImageViewである.