dp与px之间转换的工具类

2018-11-26  本文已影响0人  程序猿峰岑

import android.content.Context;

import android.util.DisplayMetrics;

import android.util.TypedValue;

/**

* 屏幕、像素相关的工具类

*/

public final class DisplayUtils {

private static DisplayMetricsmDisplayMetrics;

    public static void init(Context context) {

mDisplayMetrics = context.getResources().getDisplayMetrics();

    }

public static int getDisplayWidth() {

return mDisplayMetrics.widthPixels;

    }

public static int getDisplayHeight() {

return mDisplayMetrics.heightPixels;

    }

public static int sp2px(int spValue) {

return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, spValue, mDisplayMetrics);

    }

public static int dp2px(float dp) {

return (int) (mDisplayMetrics.density * dp +0.5f);

    }

public static int px2dip(int px) {

return (int) (px /mDisplayMetrics.density +0.5f);

    }

public static float getDisplayDensity() {

return mDisplayMetrics.density;

    }

public static int getDpi() {

return mDisplayMetrics.densityDpi;

    }

/**

* 获取状态栏的高度

*

    * @param context

    * @return

    */

    public static int getStatusBarHeight(Context context) {

int statusHeight = -1;

        try {

Class clazz = Class.forName("com.android.internal.R$dimen");

            Object object = clazz.newInstance();

            int height = Integer.parseInt(clazz.getField("status_bar_height")

.get(object).toString());

            statusHeight = context.getResources().getDimensionPixelSize(height);

        }catch (Exception e) {

e.printStackTrace();

        }

return statusHeight;

    }

}

上一篇 下一篇

猜你喜欢

热点阅读