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;
}