<style name="take_photo_anim" parent="android:Animation">
<item name="android:windowEnterAnimation">@anim/pop_enter_anim</item>
<item name="android:windowExitAnimation">@anim/pop_exit_anim</item>
</style>
进入动画(底部向上)
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="200"
android:fromYDelta="100%p"
android:toYDelta="0"/>
<alpha
android:duration="200"
android:fromAlpha="0.0"
android:toAlpha="1.0"/>
</set>
退出动画:
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="200"
android:fromYDelta="0"
android:toYDelta="50%p"/>
<alpha
android:duration="200"
android:fromAlpha="1.0"
android:toAlpha="0.0"/>
</set>
正文代码:
View popView = LayoutInflater.from(this).inflate(R.layout.view_popup, null);
mPopupWindow = new PopupWindow(popView, ViewGroup.LayoutParams.MATCH_PARENT,//添加一个布局
ViewGroup.LayoutParams.WRAP_CONTENT);
mPopupWindow.setFocusable(true);//获取焦点
setBackgroundAlpha(0.5f);
mPopupWindow.setOutsideTouchable(false);
mPopupWindow.setBackgroundDrawable(null);
mPopEdtReason = popView.findViewById(R.id.popup_edt_reason);
mPopTvCancel = popView.findViewById(R.id.popup_tv_cancel);
mPopTvConfirm = popView.findViewById(R.id.popup_tv_confirm);
mPopTvCancel.setOnClickListener(this);
mPopupWindow.setAnimationStyle(R.style.take_photo_anim);
mPopupWindow.showAtLocation(view, Gravity.BOTTOM, 0, 0);
mPopupWindow.setOnDismissListener(this);