package com.littlejie.circleprogress.utils; import android.content.Context; import android.graphics.Paint; import android.view.View; /** * Created by littlejie on 2017/2/22. */ public class MiscUtil { /** * 测量 View * * @param measureSpec * @param defaultSize View 的默认大小 * @return */ public static int measure(int measureSpec, int defaultSize) { int result = defaultSize; int specMode = View.MeasureSpec.getMode(measureSpec); int specSize = View.MeasureSpec.getSize(measureSpec); if (specMode == View.MeasureSpec.EXACTLY) { result = specSize; } else if (specMode == View.MeasureSpec.AT_MOST) { result = Math.min(result, specSize); } return result; } /** * dip 转换成px * * @param dip * @return */ public static int dipToPx(Context context, float dip) { float density = context.getResources().getDisplayMetrics().density; return (int) (dip * density + 0.5f * (dip >= 0 ? 1 : -1)); } /** * 获取数值精度格式化字符串 * * @param precision * @return */ public static String getPrecisionFormat(int precision) { return "%." + precision + "f"; } /** * 反转数组 * * @param arrays * @param * @return */ public static T[] reverse(T[] arrays) { if (arrays == null) { return null; } int length = arrays.length; for (int i = 0; i < length / 2; i++) { T t = arrays[i]; arrays[i] = arrays[length - i - 1]; arrays[length - i - 1] = t; } return arrays; } /** * 测量文字高度 * @param paint * @return */ public static float measureTextHeight(Paint paint) { Paint.FontMetrics fontMetrics = paint.getFontMetrics(); return (Math.abs(fontMetrics.ascent) - fontMetrics.descent); } }