silionXi
11/16/2017 - 2:34 AM

尺寸

// 获取StatusBar高度
public int getStatusBarHeight(Activity activity) {
    int height = -1;
    int resourceId = activity.getResources().getIdentifier("status_bar_height", "dimen", "android");
    if(resourceId > 0) {
        height = activity.getResources().getDimensionPixelSize(resourceId);
    }
    return height;
}

/*
 * dp转px
 */
public static int dp2Px(int dp) {
    return (int) (VocApplication.getVocApplication().getResources().getDisplayMetrics().density * dp
                    + 0.5);
}

/**
 * 获取设备屏幕宽高
 */
private void initScreenSize() {
    DisplayMetrics curMetrics = getApplicationContext().getResources().getDisplayMetrics();
    screenWidth = curMetrics.widthPixels;
    screenHeight = curMetrics.heightPixels;
    screenDensity = curMetrics.density; //dpi / 160?
}

/**
 * 获取View的宽高
 */
view.post(new Runnable() {
    @Override
    public void run() {
        int width = view.getMeasuredWidth();
        int height = view.getMeasuredHeight();
    }
});
ViewTreeObserver observer = view.getViewTreeObserver();
        observer.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {
                view.getViewTreeObserver().removeOnGlobalLayoutListener(this);
                int width = view.getMeasuredWidth();
                int height = view.getMeasuredHeight();
            }
        });