2

そのため、ListView の画像から ViewPager ギャラリーの画像へのアクティビティ全体の画像遷移を作成しようとしています。この遷移を行うと、ViewPager の読み込み/描画が完了する前にアニメーションが発生することがわかります。これにより、ViewPager の画像が点滅し、アニメーションの見栄えが悪くなります。

テストとして、読み込まれている ViewPager の外観を偽造するために画像をオーバートップに配置しました。次に、ListView 内の画像からこの「ダミー」ImageView に遷移し、遷移が完了したら非表示にします。これは役に立ちましたが、ViewPager が描画を終了すると物事が点滅するため、スムーズなエクスペリエンスは作成されませんでした。

ヒントをいただければ幸いです。

4

2 に答える 2

4

ここにいくつかのアイデアがあります:

ViewPager アクティビティで Activity.postponeEnterTransition() を使用して、ViewPager アクティビティの準備が整うまで遷移を遅らせることができます。遷移を開始する準備ができたら、Activity.startPostponedEnterTransition() を実行します。

トランジションをより迅速に行いたい場合、および画像が類似している (トリミングが異なっていない) 場合は、共有要素のスナップショットを使用してスケーリングできます。ここでスナップショットの使用例を見ることができます: https://halfthought.wordpress.com/2014/12/10/reveal-challenge/

呼び出し元のアクティビティの画像がトリミングされていて、その裏にトリミングされていない画像がある場合 (たとえば、ImageView が画像をトリミングしている場合)、呼び出し元のアクティビティで onCaptureSharedElementSnapshot をオーバーライドして、呼び出し元のアクティビティでトリミングされていないビットマップを返すことができます。次に、ViewPager アクティビティで onCreateSharedElementSnapshot を使用して、トランジション用の画像を取得できます。

于 2014-12-18T22:25:00.647 に答える