关于弹窗显示和消失时候蒙版背景颜色的改变请看 这篇文章:http://blog.csdn.net/tingwode2014_/article/details/51026578,不再讲了。
private InputMethodManager imm;
private PopupWindow pw;
imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);//在Activity的onCreate中初始化下,不然是null的,不再叙述了
/**
* 点击显示输入弹窗
*
* @param view
*/
public void showPW(View view) {
Button btn_addContent = null;
if (null == pw) {
pw = new PopupWindow(ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
pw.setTouchable(true);
pw.setFocusable(true);
pw.setOutsideTouchable(true);
pw.setBackgroundDrawable(new BitmapDrawable());
View contentView = getLayoutInflater().inflate(R.layout.pw_addcomment, null);
et_content = (EditText) contentView.findViewById(R.id.et_content);
btn_addContent = (Button) contentView.findViewById(R.id.btn_addContent);
pw.setContentView(contentView);
pw.setInputMethodMode(PopupWindow.INPUT_METHOD_NEEDED);
pw.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
pw.setOnDismissListener(new OnDismissListener() {
@Override
public void onDismiss() {
// TODO Auto-generated method stub
backgroundAlpha(1.0f);
}
});
btn_addContent.setOnClickListener(this);
}
if (pw.isShowing()) {
pw.dismiss();
backgroundAlpha(1.0f);
} else {
pw.showAtLocation(view, Gravity.BOTTOM, 0, 0);
backgroundAlpha(0.5f);
imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
}
}