仕上げアクティビティを長方形に縮小する方法 質問する

仕上げアクティビティを長方形に縮小する方法 質問する

私の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 のスケールを変更して、目的の長方形を作成できます。お役に立てれば幸いです。

おすすめ記事