由于安卓设备的屏幕分辨率差异很大,看上去一样的大小,实际宽高是不一样的,楼主用的时候要按照比例计算的。
在设计界面的时候都用dp为单位,但编程中好像不行,下面的代码可用来将dp转为实际像素:
static float fzoom = 0f;
/**
* 计算按照屏幕比例缩放后的尺寸
* @param context
* @param size
* @return
*/
public static int zoom(Activity context, int size){
if(fzoom == 0f){
WindowManager windowManager = context.getWindowManager();
Display display = windowManager.getDefaultDisplay();
DisplayMetrics metrics = new DisplayMetrics();
display.getMetrics(metrics);
fzoom = metrics.density;
}
return (int)(size * fzoom);
}
在设计界面的时候都用dp为单位,但编程中好像不行,下面的代码可用来将dp转为实际像素:
static float fzoom = 0f;
/**
* 计算按照屏幕比例缩放后的尺寸
* @param context
* @param size
* @return
*/
public static int zoom(Activity context, int size){
if(fzoom == 0f){
WindowManager windowManager = context.getWindowManager();
Display display = windowManager.getDefaultDisplay();
DisplayMetrics metrics = new DisplayMetrics();
display.getMetrics(metrics);
fzoom = metrics.density;
}
return (int)(size * fzoom);
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货