Android ViewPager切り替えのN種動画
2528 ワード
前編『Android ViewPager使用』に基づいてhttp://gqdy365.iteye.com/blog/2114963
ここでは、ViewPager切り替えの7でよく使われるアニメーションを実現し、まず効果図をアップします.
実装プロセス:
1、ViewPagerにはインタフェースPageTransformerがあり、ViewPagerはページ切り替え時(onPageScrolledメソッド)にPageTransformerを呼び出して、私たちのカスタムの特効を呼び出します.論理関係は図のようです:
2、アニメーションの実現:
Android 3.1から、Viewには次の方法が追加されました.
setsetAlpha:透明度の変化;
setTranslation:位置変化;
setScale:スケール変更;
setRotation:角度変化;
これらの方法の組み合わせを用いて,種々のViewスイッチング特効を実現することができる.
Android 3.1以前のバージョンではこれらの方法は使えませんでしたか?もちろんいいえ、万能github、万能のオープンソースプロジェクトがあります.https://github.com/JakeWharton/NineOldAndroids
彼は3.1以下のバージョンで上記の方法の呼び出しを実現し、オープンソースに敬意を表し、共有に敬意を表します!!!
次に、立方体効果の例を示します.
注釈はもう詳しくなっていますが、どうでしょう.もう特別な説明はいらないでしょう.
他の効果は似ています!
3、使用方法:
たった一言:
Demo添付ファイルを参照!
ここでは、ViewPager切り替えの7でよく使われるアニメーションを実現し、まず効果図をアップします.
実装プロセス:
1、ViewPagerにはインタフェースPageTransformerがあり、ViewPagerはページ切り替え時(onPageScrolledメソッド)にPageTransformerを呼び出して、私たちのカスタムの特効を呼び出します.論理関係は図のようです:
2、アニメーションの実現:
Android 3.1から、Viewには次の方法が追加されました.
setsetAlpha:透明度の変化;
setTranslation:位置変化;
setScale:スケール変更;
setRotation:角度変化;
これらの方法の組み合わせを用いて,種々のViewスイッチング特効を実現することができる.
Android 3.1以前のバージョンではこれらの方法は使えませんでしたか?もちろんいいえ、万能github、万能のオープンソースプロジェクトがあります.https://github.com/JakeWharton/NineOldAndroids
彼は3.1以下のバージョンで上記の方法の呼び出しを実現し、オープンソースに敬意を表し、共有に敬意を表します!!!
次に、立方体効果の例を示します.
public class CubeTransformer implements PageTransformer {
/**
* position 。 , 。 , 0,
* , 1。 , -0.5, 0.5。
* , setAlpha()、setTranslationX()、 setScaleY() , 。
*/
@Override
public void transformPage(View view, float position) {
if (position <= 0) {
// View
// ;
ViewHelper.setPivotX(view, view.getMeasuredWidth());
ViewHelper.setPivotY(view, view.getMeasuredHeight() * 0.5f);
// Y
ViewHelper.setRotationY(view, 90f * position);
} else if (position <= 1) {
// View
ViewHelper.setPivotX(view, 0);
ViewHelper.setPivotY(view, view.getMeasuredHeight() * 0.5f);
ViewHelper.setRotationY(view, 90f * position);
}
}
}
注釈はもう詳しくなっていますが、どうでしょう.もう特別な説明はいらないでしょう.
他の効果は似ています!
3、使用方法:
たった一言:
vPage.setPageTransformer(true, new CubeTransformer());
Demo添付ファイルを参照!