Activity transition(Activity回転アニメーション効果)
12041 ワード
参照先:
Android5.0のActivityのターンオーバーアニメーション
Material Designの低バージョン互換実装(5)-Activity OptionsCompat
カスタムアニメーションを簡単に作成します.このパラメータは簡単です.入ったアニメーションのidを入力し、アニメーションのidを削除すればいいです.
類似:overridePendingTransition.
これは4.x上で有用であり,ある固定座標からあるサイズで全画面に拡大する新しいActivityを実現できる.
アルバムには良い展示効果です.
現在のインタフェースの要素と新しいインタフェースの要素を関連付ける必要がある場合は、このアニメーションを使用します.
1、共有要素がない:
開始activity:
2番目のactivity:
2、共有要素があります.
①レイアウトで共有する要素にandroid:transitionName="mybtn 1":
②activityで
パラメータbtn 2:1番目と2番目のactivityの共有要素(そのButton)を表し、パラメータ「mybtn 1」:レイアウトファイルのtransitionAnimationプロパティの値を表します.
2番目のactivityで
①レイアウトで共有されている要素にandroidを追加する:transitionName:
注:transitionName名は対応し、同じにします.
②activityでは何もしない
3、複数の共有要素がある:
2つのページに複数の共有要素がある場合はどうすればいいですか?Android:transitionNameプロパティは上記のように設定されており、Activityを起動するときにPairを使用できます.createメソッドを使用して、複数の共有要素を設定します.
開始activity:
①レイアウトで共有されている要素にandroid:transitionName属性を追加し、名前をカスタマイズします.
②activityで
Pair.createメソッドには2つのパラメータがあり、1つ目は共有要素のインスタンス(ビュータイプの場合に注意)であり、2つ目のパラメータはそのビューのtransitionAnimation属性の値である.
2番目のactivityで
①レイアウトで共有されている要素にandroidを追加する:transitionName:
注:transitionName名は対応し、同じにします.
②activityでは何もしない
Android5.0のActivityのターンオーバーアニメーション
Material Designの低バージョン互換実装(5)-Activity OptionsCompat
システム内蔵の一般的なターンテーブルアニメーション:
// StartActivity() finish()
Intent intent = new Intent(MainActivity.this, MainActivityI.class);
startActivity(intent);
overridePendingTransition(android.R.anim.slide_in_left, android.R.anim.slide_out_right);
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
Android5.0ターンフィールドアニメーション
1、ActivityOptionsCompat.makeCustomAnimation(context, enterResId, exitResId)
カスタムアニメーションを簡単に作成します.このパラメータは簡単です.入ったアニメーションのidを入力し、アニメーションのidを削除すればいいです.
類似:overridePendingTransition.
// :overridePendingTransition(R.anim.slide_bottom_in, R.anim.slide_bottom_out);
// overridePendingTransition
ActivityOptionsCompat options = ActivityOptionsCompat.makeCustomAnimation(MainActivity.this,
R.anim.slide_bottom_in, R.anim.slide_bottom_out);
Intent intent = new Intent(MainActivity.this, MainActivityI.class);
startActivity(intent, options.toBundle());
2、ActivityOptionsCompat.makeScaleUpAnimation(source, startX, startY, startWidth, startHeight)
これは4.x上で有用であり,ある固定座標からあるサイズで全画面に拡大する新しいActivityを実現できる.
アルバムには良い展示効果です.
// Activity ( activity )
ActivityOptionsCompat options = ActivityOptionsCompat.makeScaleUpAnimation(btn2,
btn2.getWidth() / 2, btn2.getHeight() / 2, //
0, 0);// , (0,0)
Intent intent = new Intent(MainActivity.this, MainActivityI.class);
startActivity(intent, options.toBundle());
3、ActivityOptionsCompat.makeSceneTransitionAnimation(activity, sharedElement, sharedElementName)
現在のインタフェースの要素と新しいインタフェースの要素を関連付ける必要がある場合は、このアニメーションを使用します.
1、共有要素がない:
開始activity:
ActivityOptionsCompat optionsCompat = ActivityOptionsCompat.makeSceneTransitionAnimation(MainActivity.this);
Intent intent = new Intent(MainActivity.this, MainActivityI.class);
startActivity(intent, optionsCompat.toBundle());
2番目のactivity:
public class MainActivityI extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
//
getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maini);
//
Slide slide = new Slide();
slide.setDuration(2000);
getWindow().setExitTransition(slide);// 1
getWindow().setEnterTransition(slide);//
//
// Explode explode = new Explode();
// explode.setDuration(2000);
// getWindow().setExitTransition(explode);//
// getWindow().setEnterTransition(explode);//
//
// Fade fade = new Fade();
// fade.setDuration(2000);
// getWindow().setExitTransition(fade);//
// getWindow().setEnterTransition(fade);//
}
}
2、共有要素があります.
①レイアウトで共有する要素にandroid:transitionName="mybtn 1":
②activityで
Bundle bundle = ActivityOptions.makeSceneTransitionAnimation(MainActivity.this, btn2, "mybtn1").toBundle();
Intent intent = new Intent(MainActivity.this, MainActivityI.class);
startActivity(intent, bundle);
パラメータbtn 2:1番目と2番目のactivityの共有要素(そのButton)を表し、パラメータ「mybtn 1」:レイアウトファイルのtransitionAnimationプロパティの値を表します.
2番目のactivityで
①レイアウトで共有されている要素にandroidを追加する:transitionName:
注:transitionName名は対応し、同じにします.
②activityでは何もしない
3、複数の共有要素がある:
2つのページに複数の共有要素がある場合はどうすればいいですか?Android:transitionNameプロパティは上記のように設定されており、Activityを起動するときにPairを使用できます.createメソッドを使用して、複数の共有要素を設定します.
開始activity:
①レイアウトで共有されている要素にandroid:transitionName属性を追加し、名前をカスタマイズします.
②activityで
Bundle bundle = ActivityOptions
.makeSceneTransitionAnimation(MainActivity.this,
Pair.create(((View) btn2), "mybtn1"),
Pair.create(((View) btn3), "mybtn2"))
.toBundle();
Intent intent = new Intent(MainActivity.this, MainActivityI.class);
startActivity(intent, bundle);
Pair.createメソッドには2つのパラメータがあり、1つ目は共有要素のインスタンス(ビュータイプの場合に注意)であり、2つ目のパラメータはそのビューのtransitionAnimation属性の値である.
2番目のactivityで
①レイアウトで共有されている要素にandroidを追加する:transitionName:
注:transitionName名は対応し、同じにします.
②activityでは何もしない