PopupWindow的屏幕适配--解决因分辨率不同而造成的错位或者大小不一致

1.创建一个PopupWindow对象,其实就是展示在Activity上的一个窗口,里面可以放任意布局。
1 PopupWindow popupWindow = new PopupWindow(context);// 创建窗口对象

2.PopupWindow的大小设置

1 //获取手机屏宽高
2         int mScreenHeight = DeviceUtil.getHeight((Activity) context);
3         int mScreenWidth = DeviceUtil.getWidth((Activity) context);
4 
5         // 设置窗口的的宽和高
6         popupWindow.setHeight((int) (mScreenHeight/7.2));
7         popupWindow.setWidth((int) (mScreenWidth/7.7));

3.相关设置

1  popupWindow.setFocusable(true);// view可以被点击
2         ColorDrawable dw = new ColorDrawable(0xFFFFFF);
3         popupWindow.setBackgroundDrawable(dw);

4.自定义布局

//自定义布局
        View view = LayoutInflater.from(context).inflate(
                R.layout.push_layout, null);
// 设置popupWindown中显示的view是谁。
popupWindow.setContentView(view);// 设置view是哪一个,其实可以是任意的view

5.位置显示

int xoff=DeviceUtil.dp2px(context, (float) 12);//dp转px,解决不同手机错位问题
popupWindow.showAsDropDown(v, -xoff, 10);

 

posted @ 2016-03-07 17:05  Quejamais  阅读(1420)  评论(0编辑  收藏  举报