动态获取popupWindow的宽高

来源:互联网 发布:数据vps 编辑:程序博客网 时间:2024/06/16 06:11

popupWindow的长宽按比例去取屏幕宽度

思路:

思路是这样的
比如:保存的时候宽高是300和100 
宽高比就是n=3/1=3 
弹窗的时候是取得到屏幕宽高的
因为不知道是平板还是手机
比如都要取屏幕的0.8
n>1 那宽就是 屏幕宽度*0.8   高度就是  屏幕宽度*0.8/n
n<1 那高就是 屏幕高度*0.8   宽度就是  屏幕高度*0.8*n


代码:

    public static double window_scale = 0.8;// 给定的屏幕比例public static float width = 130;// 给定的图片宽度public static float height = 78;// 给定的图片高度public static double scale = width / height;// scale=1.67    int width, heigth;if (Const.width > Const.height) {width = (int) (ScreenUtils.getScreenWidth(context) * Const.window_scale);heigth = (int) ((ScreenUtils.getScreenWidth(context) * Const.window_scale) /Const.scale);Const.pop_scale = width / heigth;} else {width = (int) (ScreenUtils.getScreenHeight(context) * Const.window_scale);heigth = (int) ((ScreenUtils.getScreenHeight(context) * Const.window_scale) * Const.scale);Const.pop_scale = heigth / width;}/** * 获取屏幕的宽度(单位:px) * * @return 屏幕宽px */public static int getScreenWidth(Context context) {WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);DisplayMetrics dm = new DisplayMetrics();// 创建了一张白纸windowManager.getDefaultDisplay().getMetrics(dm);// 给白纸设置宽高return dm.widthPixels;}/** * 获取屏幕的高度(单位:px) * * @return 屏幕高px */public static int getScreenHeight(Context context) {WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);DisplayMetrics dm = new DisplayMetrics();// 创建了一张白纸windowManager.getDefaultDisplay().getMetrics(dm);// 给白纸设置宽高return dm.heightPixels;}


原创粉丝点击