Android万能分辨率适应法

来源:互联网 发布:马拉车算法 编辑:程序博客网 时间:2024/05/29 04:23

(1)获取屏幕的尺寸

WindowManager windowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);Display d = windowManager.getDefaultDisplay();mWidth = d.getWidth();mHeight = d.getHeight();DisplayMetrics dm = getResources().getDisplayMetrics();mScreenDensity = dm.density;

(2)美工设计图的尺寸

uiWidth,uiHeight

(3)获取缩放比例

float scaleWidth = mWidth / uiWidth;float scaleHeight = mHeight/ uiHeight; 

(4)所有布局的尺寸用代码实现

public static int getWidthSize(int size){    return (int) (size * scaleWidth);}public static int getHightSize(int size){    return (int) (size * scaleHeight);}public static float getTextSize(int pxSize){    return (pxSize*scaleHeight) / mScreenDensity;}public static void setViewSize(int width, int height, View v){    int paramWidth = getWidthSize(width);    int paramHeight = getHightSize(height);    ViewGroup.MarginLayoutParams params            = (ViewGroup.MarginLayoutParams) v.getLayoutParams();    if (width != INVALID){        params.width = paramWidth;    }    if (height != INVALID){        params.height = paramHeight;    }    v.setLayoutParams(params);}public static void setViewPadding(int left, int top, int right, int bottom,        View v){    left = getWidthSize(left);    top = getHightSize(top);    right = getWidthSize(right);    bottom = getWidthSize(bottom);    v.setPadding(left, top, right, bottom);}public static void setViewMargin(int left, int top, int right, int bottom,        View v){    int paramLeft = getWidthSize(left);    int paramTop =  getHightSize(top);    int paramRight = getWidthSize(right);    int paramBottom = getHightSize(bottom);    ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams)                 v.getLayoutParams();    if (left != INVALID){        params.leftMargin = paramLeft;    }    if (right != INVALID){        params.rightMargin = paramRight;    }    if (top != INVALID){        params.topMargin = paramTop;    }    if (bottom != INVALID){        params.bottomMargin = paramBottom;    }    v.setLayoutParams(params);}





0 0
原创粉丝点击