要在Android的DialogActivity中實現動畫效果,可以通過以下步驟實現:
<style name="CustomDialogStyle" parent="Theme.AppCompat.Dialog">
<item name="android:windowAnimationStyle">@style/DialogAnimation</item>
</style>
<style name="DialogAnimation">
<item name="android:windowEnterAnimation">@anim/slide_in</item>
<item name="android:windowExitAnimation">@anim/slide_out</item>
</style>
slide_in.xml:
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromXDelta="100%p"
android:toXDelta="0"
android:duration="300"/>
</set>
slide_out.xml:
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromXDelta="0"
android:toXDelta="100%p"
android:duration="300"/>
</set>
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dialog);
// 設置Dialog的樣式
getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
getWindow().setWindowAnimations(R.style.DialogAnimation);
// 其他代碼
}
這樣就可以在DialogActivity中實現動畫效果了。當DialogActivity顯示時,將會有一個從右側滑入的動畫效果;當DialogActivity退出時,將會有一個向右側滑出的動畫效果。