天天看點

android擷取螢幕寬高與擷取控件寬高 方法總結

擷取螢幕的大小

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