ホームページ > 記事 > ウェブフロントエンド > Androidアニメーションアニメーションの詳しい解説(2):組み合わせアニメーション特殊効果_html/css_WEB-ITnose
はじめに
前回のブログ Android アニメーションのアニメーション詳細説明 (1): トゥイーン アニメーション Android のトゥイーン アニメーションの 4 つの形式を紹介しましたが、このブログを読んだ兄弟なら一緒に理解できると思います。まだ理解していない場合は、リンクをクリックして勉強してから、簡単なアニメーション効果を組み合わせてクールなアニメーション効果を作成する方法を学びに来てください。
タイトルにあるように、考えてみてください。ページに多くのアニメーションが含まれている場合、これらのアニメーションは順番に再生される必要があります。つまり、1 つのアニメーションが再生された後、別のアニメーションが継続して再生されます。これらのアニメーションに一貫性があるように再生されます。これを達成するにはどうすればよいでしょうか? 開発経験や論理的思考を持っている人は、このアニメーションの再生が終了したら、別のアニメーションを再生することを検討すると思います。
おめでとうございます、あなたと私は同じことを考えています。
この種のアニメーションの再生を通じて監視する方法を見てみましょう:
rreee
上記で紹介したアニメーション再生の終了を監視するリスナーの使用に加えて、より簡単な方法があり、最初にお勧めします。それがアニメーション セットです。
ここでは、アニメーション属性 startOffset を導入します。 それの使い方?アニメーションを定義するコードを見てください:
private void continueAnim(){ // 先加载第一个动画 Animation translate = AnimationUtils.loadAnimation(getActivity(), R.anim.translate_animation); // 在加载第二个动画 final Animation scale = AnimationUtils.loadAnimation(getActivity(), R.anim.scale_animation); // 接下来,我们队第一个动画进行监听,当它播放完成后,我们播放第二个动画 translate.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { } @Override public void onAnimationEnd(Animation animation) { imgView.startAnimation(scale); } @Override public void onAnimationRepeat(Animation animation) { } }); imgView.startAnimation(translate); }
translation によって定義されたアニメーションを詳しく見てください。この属性の値は、実際にはアルファ アニメーションの継続時間の値です。これは 3 秒の遅延を意味します。実際には、最初のアルファ アニメーションが完了した後に再生されます。
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" android:fillAfter="true" android:fillEnabled="true"> <alpha android:fromAlpha="0" android:toAlpha="1" android:duration="3000"/> <translate android:duration="1000" android:fromXDelta="0" android:fromYDelta="0" android:toXDelta="100" android:toYDelta="100" android:startOffset="3000" /></set>
アニメーションの再生 (Siyi という名前の由来) は、アニメーションを繰り返し再生することです。上のアニメーション gif を見てください。実際にアニメーションが繰り返し再生されます。では、Android はどのようにしてアニメーションを繰り返し再生するのでしょうか?
Android 自体がアニメーションを定義するための 2 つの属性、repeatCount とrepeatMode を提供しているため、実際には非常に簡単です。これら 2 つの属性をアニメーションに設定するだけで問題ありません。
記憶を容易にするために、コードを見てみましょう:
Animation continueAnim = AnimationUtils.loadAnimation(getActivity(), R.anim.continue_animation);imgView.startAnimation(continueAnim);
アクティビティ切り替えアニメーションと言えば、例えば淘宝網や美団などをプレイすると、スライドでページ切り替えが入力されることがわかると思います。はい、これは実際にはアクティビティ切り替えアニメーションのアプリケーションです。最初は難しいと思うかもしれませんが、私が言いたいのは、アニメーション (特にトゥイーン アニメーション) の定義方法をすでに知っている場合は、次の方法を理解するだけでよいということです。 overridePendingTransition は可能です。
まずこのメソッドの定義を見てみましょう:
<translate android:duration="1000" android:fromXDelta="0" android:fromYDelta="0" android:toXDelta="100" android:toYDelta="100" android:repeatCount="5" android:repeatMode="restart" />最初のパラメータ enterAnim は、開始される新しいアクティビティが開始されるときのアニメーションです。 2 番目のパラメータ exitAnim は、実際には元のアクティビティが終了するときのアニメーションを参照します。効果。
次に、2 つのアニメーション リソースを定義しましょう: fade_in.xml とhold_out.xml
/** * @param enterAnim A resource ID of the animation resource to use for * the incoming activity. Use 0 for no animation. * @param exitAnim A resource ID of the animation resource to use for * the outgoing activity. Use 0 for no animation. */ public void overridePendingTransition(int enterAnim, int exitAnim) { try { ActivityManagerNative.getDefault().overridePendingTransition( mToken, getPackageName(), enterAnim, exitAnim); } catch (RemoteException e) { } }
<?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:fromAlpha="0.2" android:toAlpha="1.0" android:duration="1000" /></set>
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator"> <translate android:fromXDelta="0%p" android:toXDelta="100%p" android:duration="1000" /></set>
または:
Intent intent = new Intent(getActivity(),SecondActivity.class);startActivity(intent);overridePendingTransition(R.anim.fade_in,R.anim.hold_out);そして効果を見てください:
実際、複雑なアニメーションは、これらのアニメーションを 1 つのステップで明確に分析して統合するだけです。段階的にロックを解除できます。
その後、開発プロセスで使用した 2 つのアニメーションを紹介するブログをさらに 2 つ書きます。もちろん、それらは経験を共有するだけです。ご期待ください。
ソース コードのダウンロード アドレス (無料): http://download.csdn.net/detail/zuiwuyuan/9047739
著作権表示: この記事はブロガーによるオリジナルの記事であり、許可なく複製することはできません。ブロガーの許可。