いくつかの調査をした後、私は自分自身に答えるでしょう。
1 - AndroidManifestで次のテーマを設定して、 "透過的"な活動を作成します。これを行わない場合は、空白の画面が表示されます。
<style name="TransparentActivity" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:backgroundDimEnabled">false</item>
</style>
2.ルートdecorViewにそれを適用し、手動でTranslationAnimation(またはしたいアニメーション)を作成し、同様にしてカスタムアニメーションを無効にします0にそれらを設定:
overridePendingTransition(0, 0);
// Custom transition
TranslateAnimation translateAnimation = new TranslateAnimation(-translationLength, 0, 0, 0);
translateAnimation.setDuration(350);
translateAnimation.setFillAfter(true);
View rootView = getWindow().getDecorView().findViewById(android.R.id.content);
rootView.startAnimation(translateAnimation);
rootView.getLayoutParams().width = translationLength;
あなたが逆のアニメーションonBackPressedをしたい場合、またはあなたの活動の終了時:
@Override
public void finish() {
overridePendingTransition(0, 0);
TranslateAnimation translateAnimation = new TranslateAnimation(0, -translationLength, 0, 0);
translateAnimation.setDuration(350);
translateAnimation.setFillAfter(true);
translateAnimation.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
YourActivity.super.finish();
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
getWindow().getDecorView().findViewById(android.R.id.content).startAnimation(translateAnimation);
}
は、なぜ私はdownvotedたのですか? – moyo
解決策を見つけました!以下に掲示される – moyo