/**
* Project name:江云一代一路
* <p>
* 类说明:
* <p>
* 2017/10/27 0027.
* <p>
* by:suyan
*/
public class IosPopupWindow extends PopupWindow{
private Context mContext;
private Activity mActivity;
public IosPopupWindow(Context context, Activity activity) {
super(context);
mContext = context;
mActivity = activity;
init(context);
}
private void init(Context context) {
setPopupWindow();
}
//设置popupwindow
@SuppressLint("InlinedApi")
private void setPopupWindow() {
this.setWidth(LinearLayout.LayoutParams.MATCH_PARENT);// 设置弹出窗口的宽
this.setHeight(LinearLayout.LayoutParams.WRAP_CONTENT);// 设置弹出窗口的高
this.setFocusable(true);// 设置弹出窗口点击外部消失
this.setAnimationStyle(R.style.pop_style_anim);// 设置动画
//设置背景,这个没什么效果,不添加会报错
this.setBackgroundDrawable(new BitmapDrawable());
// this.setBackgroundDrawable(new ColorDrawable(0x55000000));// 设置背景透明
this.setOnDismissListener(new PopupWindow.OnDismissListener() {
@Override
public void onDismiss() {
WindowManager.LayoutParams lp = mActivity.getWindow().getAttributes();
lp.alpha = 1f;
mActivity.getWindow().setAttributes(lp);
}
});
}
public void showPop(View content,View playview) {
float bgalpha=0.5f;
this.setContentView(content);
//当popupwindow弹出时背景变暗
WindowManager.LayoutParams lp = mActivity.getWindow().getAttributes();
lp.alpha = bgalpha;
if (bgalpha == 1) {
mActivity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);//不移除该Flag的话,在有视频的页面上的视频会出现黑屏的bug
} else {
mActivity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);//此行代码主要是解决在华为手机上半透明效果无效的bug
}
mActivity.getWindow().setAttributes(lp);
this.showAtLocation(playview, Gravity.BOTTOM, 0, 0);
}
}
自定义PopupWindow
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 现在很多的应用效果都需要做的炫些,像UC,以及天天静听,效果很炫的,源码已经对外开放了,有兴趣的可以去研究下的 上...
- 设置背景色 在Android App的业务场景中,经常需要在屏幕弹出PopupWindow后,将背景设置为半透明的...