要在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退出时,将会有一个向右侧滑出的动画效果。