私のAndroidアプリにはフローティングがありますActivity
。これはアプリの外部から起動されます。ActivityOptions.makeScaleUpAnimation
「元の」長方形から拡大します。終了したらActivity
、そのアニメーションの逆、つまりフェードアウトするときに元の長方形に縮小するようにします。
で長方形を作れることは分かってgetIntent().getSourceBounds()
います。そして、overridePendingTransition()
この効果を達成するために終了時に、overridePendingTransition()
固定の XML リソースしか受け入れることができません。そのアニメーションをソースの境界に依存させる方法はないようです。この効果を達成するために使用できる他の方法はありますか?
私のアプリは API 11+ 用ですが、見た目だけの効果なので、それ以降のバージョンに依存するソリューションで満足します。
ベストアンサー1
overridePendingTransition 呼び出し以外にアクティビティ ウィンドウを縮小する方法はないと思います。ただし、次のコードが役立つかもしれません:
拡大する
ActivityOptions opts = ActivityOptions.makeCustomAnimation(getActivity(), R.anim.scale_up, 0); startActivity(新しい Intent(this, SecondActivity.class),opts.toBundle());
以下は scale_up アニメーション ファイルです。
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale
android:fromXScale="0"
android:toXScale="1.0"
android:fromYScale="0"
android:toYScale="1.0"
android:pivotX="50%p"
android:pivotY="50%p"
android:duration="500"/>
</set>
規模を縮小する
終了アクティビティからこのコードを呼び出します。
finish();
overridePendingTransition(0, R.anim.scale_down);
以下は scale_down アニメーション ファイルです。
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale
android:fromXScale="1.0"
android:toXScale="0"
android:fromYScale="1.0"
android:toYScale="0"
android:pivotX="50%p"
android:pivotY="50%p"
android:duration="250"/>
</set>
X と Y のスケールを変更して、目的の長方形を作成できます。お役に立てれば幸いです。