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;
}
}
网友评论