1.在res/anim文件下创建pophidden_anim和popshow_anim
pophidden_anim代码如下:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="1000"
android:fromYDelta="100%"
android:toYDelta="0" />
<alpha
android:duration="1000"
android:fromAlpha="1.0"
android:toAlpha="0.0" />
</set>
</pre><pre name="code" class="html">popshow_anim代码如下
<pre name="code" class="html"><?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="1000"
android:fromYDelta="0"
android:toYDelta="100%" />
<alpha
android:duration="1000"
android:fromAlpha="0.0"
android:toAlpha="1.0" />
</set>
2.res/values/styles添加如下代码
<style name="popwindow_anim_style" parent="android:Animation" mce_bogus="1">
<item name="android:windowEnterAnimation">@anim/popshow_anim</item>
<item name="android:windowExitAnimation">@anim/pophidden_anim</item>
</style>
3.java代码
<span style="white-space:pre"> </span>View convertview=View.inflate(getActivity(),R.layout.pop_setting,null);
popupWindow = new PopupWindow(convertview,ViewGroup.LayoutParams.MATCH_PARENT,-2,true);
popupWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
popupWindow.setOutsideTouchable(true);
popupWindow.showAtLocation(view, Gravity.BOTTOM,0,0);
popupWindow.setAnimationStyle(R.style.popwindow_anim_style);
<span style="white-space:pre"> </span>//一定要添加update()
popupWindow.update();
backgroundAlpha(0.8f);
popupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
@Override
public void onDismiss() {
backgroundAlpha(1f);
}
});
/**
* 设置透明度
* @param bgAlpha
*/
public void backgroundAlpha(float bgAlpha) {
WindowManager.LayoutParams lp = getActivity().getWindow().getAttributes();
lp.alpha = bgAlpha; //0.0-1.0
getActivity().getWindow().setAttributes(lp);
}