View contentView;
LayoutInflater mLayoutInflater = LayoutInflater.from(activity);
contentView = mLayoutInflater.inflate(R.layout.layout_popupwindow,
null);
pop = new PopupWindow(contentView,
ViewGroup.LayoutParams.MATCH_PARENT, (int) context.getResources().getDimension(R.dimen.y568));
TextView tvTitle = (TextView) contentView.findViewById(R.id.text);
tvTitle.setText(strTitle);
ListView listView = (ListView) contentView.findViewById(R.id.list);
// 产生背景变暗效果
WindowManager.LayoutParams lp = activity.getWindow()
.getAttributes();
lp.alpha = 0.4f;
activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
activity.getWindow().setAttributes(lp);
pop.setTouchable(true);
pop.setFocusable(true);
pop.setBackgroundDrawable(new BitmapDrawable());
pop.setOutsideTouchable(true);
pop.showAtLocation(contentView, Gravity.BOTTOM, 0, 0);
pop.update();
pop.setOnDismissListener(new PopupWindow.OnDismissListener() {
// 在dismiss中恢复透明度
public void onDismiss() {
WindowManager.LayoutParams lp = activity.getWindow()
.getAttributes();
lp.alpha = 1f;
activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
activity.getWindow().setAttributes(lp);
}
});
listView.setOnItemClickListener(onItemClickListener);
listView.setAdapter(adapter);
Android PopupWindow背景半透明兼容方案
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 大家想必对PopupWindow不会很陌生吧,我们在开发中经常会遇到要求使其背景半透明的需求,但网上的很多解决方案...
- 关于PopupWindow的使用,网上各种介绍,不胜枚举。我这里记录一下自己写的一个小demo(备忘),背景是半透...
- 常规写法: 以上常规写法在大部分机型上没问题,但是在华为手机上会失效,修改如下: 适配写法:
- 首先定义一个PublishPopWindow 导入注解jar包(部分jar包可不用到) xml布局 定义一个动画工...