您的位置:首页 > 运维架构

自定义popWindow

2015-10-24 23:22 375 查看
popWindow显示有两种,相对某空件和自定义位置。

下面是相对于某控件,即在标题栏下弹出popwindow:

/**
* 创建PopupWindow
*/
protected void initPopuptWindow() {
view_pop = LayoutInflater.from(this).inflate(R.layout.pop_view, null);
WindowManager windowManager = getWindowManager();
Display display = windowManager.getDefaultDisplay();
popupWindow = new PopupWindow(view_pop, display.getWidth(),
display.getHeight(), true);
// 设置动画效果
popupWindow.setAnimationStyle(R.style.PopupAnimation);
popupWindow.showAsDropDown(ll_title);// 在标题栏正下方显示

WindowManager.LayoutParams params = getWindow().getAttributes();
params.alpha = 0.7f;
// getWindow().setAttributes(params);

// 点击其他地方消失
view_pop.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
closePopupWindow();
return false;
}
});
}

/***
* 获取PopupWindow实例
*/
private void getPopupWindow() {

if (null != popupWindow) {
closePopupWindow();
return;
} else {
initPopuptWindow();
}
}

/**
* 关闭窗口
*/
private void closePopupWindow() {
if (popupWindow != null && popupWindow.isShowing()) {
popupWindow.dismiss();
popupWindow = null;
WindowManager.LayoutParams params = getWindow().getAttributes();
params.alpha = 1f;
getWindow().setAttributes(params);
}
}
}


style中建立:PopupAnimation样式

<!-- popWindow 进入退出样式 -->
<style name="PopupAnimation" mce_bogus="1" parent="android:Animation">
<item name="android:windowEnterAnimation">@anim/push_top_in</item>
<item name="android:windowExitAnimation">@anim/push_top_out</item>
</style>


push_top_in.xml:

<?xml version="1.0" encoding="utf-8"?>
<!-- 上下滑入式 -->
<set xmlns:android="http://schemas.android.com/apk/res/android" >

<translate
android:duration="200"
android:fromYDelta="-50%p"
android:toYDelta="0" />
</set>


push_top_out.xml:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息