web-dev-qa-db-ja.com

android下位APIでの5つのアクティビティ遷移

検索するたびに、この「Android 5(L)アクティビティ遷移はAPI >= 21

それは問題ありませんが、QuickPicgoogle inbox同様の遷移を使用し、also下位APIで作業しているので、このアプリはどのようにこのようなことを行うことができますか?

私がしたこと

1)多くの検索:)

2)次のように、21以上のapiにのみ適用されるActivityOptionsCompatで遊ぶ:

ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(activity, transitionView, DATA.EXTRA_PASSED_JSON);
Intent intent = new Intent(activity, PhotoViewerActivity.class);
intent.putExtra(DATA.EXTRA_PASSED_JSON, json);
ActivityCompat.startActivity(activity, intent, options.toBundle());

編集(質問は重複としてマークされています):この場合、他の質問とは異なります。これは、より低いAPIでこの移行を行う他のアプリがあり、どのようにそれを行うかを知りたいからです。

32
mehdok

Lollipopに多くの機能を追加して、アクティビティの切り替えがうまく機能するようにしました。 (以前のバージョンでは)手動でアクティビティ遷移を行うことは可能ですが、場合によっては問題が発生し、戻り遷移は最も単純な場合にのみ機能する可能性があります。 Chet Haaseにはこれについてdevbyteがあります here

APIはLollipopのFragment Transitionsほど使いやすいものではありませんが、フラグメント間のアニメーションは以前から可能でした。

サポートライブラリの以前のバージョンへの移行のバックポーティングについて多くのことを考えました。それはまだ起こるかもしれません。もしそうなら、フラグメント遷移のために何かをすることができるはずです。

38
George Mount

あなた自身が言うように、サポートライブラリは、Android 5.0より前のバージョンでの(すべての)遷移をサポートしていません。ただし、いくつかの選択肢があります。

非公式の互換性ライブラリ
https://github.com/andkulikov/transitions-everywhere
https://github.com/takahirom/PreLollipopTransition
https://github.com/lgvalle/Material-Animations

Android KitKat
http://www.doubleencore.com/2013/11/new-transitions-framework/ およびSDKサンプルフォルダーにあるサンプル。

22
Mdlc