获取屏幕的大小
public class AdaptationUtils {
public AdaptationUtils() {
}
public static int screenWidth = 0;
public static int screenHeigh = 0;
/**
* 打印分辨率 和手机的类型
*/
public static void ShowDetial() {
LogUtils.i(AdaptationUtils.getScreenWidth() + "--" + AdaptationUtils.getScreenHeigh() + "--"
+ android.os.Build.MODEL);
}
/**
* 获取屏幕宽高
*
* @return 0 为 宽 1 为 高
*/
public static int[] getScreenSize() {
// 初始化字体
// 获取当前屏幕 分辨率
DisplayMetrics displayMetrics = new DisplayMetrics();
WindowManager wm = (WindowManager) UIUtils.getContext().getSystemService(UIUtils.getContext().WINDOW_SERVICE);
wm.getDefaultDisplay().getMetrics(displayMetrics);
int screenWidth = displayMetrics.widthPixels;
int screenHeigh = displayMetrics.heightPixels;
setScreenWidth(screenWidth);
setScreenHeigh(screenHeigh);
return new int[] { displayMetrics.widthPixels, displayMetrics.heightPixels };
}
/**
* 获取宽度
*
* @return
*/
public static int getScreenWidth() {
if (screenWidth == 0) {
return getScreenSize()[0];
} else {
return screenWidth;
}
}
/**
* 设置宽度
*
* @param screenWidth
*/
public static void setScreenWidth(int screenWidth) {
AdaptationUtils.screenWidth = screenWidth;
AppsDeviceParameters.screenWidth=screenWidth;
}
/**
* 获取高度
*
* @return
*/
public static int getScreenHeigh() {
if (screenWidth == 0) {
return getScreenSize()[1];
} else {
return screenHeigh;
}
}
/**
* 设置高度
*
* @param screenHeigh
*/
public static void setScreenHeigh(int screenHeigh) {
AdaptationUtils.screenHeigh = screenHeigh;
AppsDeviceParameters.screenHeigh=screenHeigh;
}}
获取控件的宽高
1.很简单直接 复用activity方法
@Override
public void onWindowFocusChanged(boolean hasFocus) {
// TODO Auto-generated method stub
super.onWindowFocusChanged(hasFocus);
System.out.println("dialog1:" + dialog1.getWidth());
}
我基本用方法1
2. 很简单也
mLastView.post(new Runnable() {
@Override
public void run() {
int width=mLastView.getMeasuredWidth();
int height=mLastView.getMeasuredHeight();
}
});
3 方法
rl.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
//当键盘弹出隐藏的时候会 调用此方法。
@Override
public void onGlobalLayout() {
rl.getHeight();
}
});