美文网首页
dp与px之间转换的工具类

dp与px之间转换的工具类

作者: 程序猿峰岑 | 来源:发表于2018-11-26 14:45 被阅读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;

    }

}

相关文章

网友评论

      本文标题:dp与px之间转换的工具类

      本文链接:https://www.haomeiwen.com/subject/trjbqqtx.html