package com.example.datalibrary.view; 
 | 
  
 | 
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 <T> 
 | 
     * @return 
 | 
     */ 
 | 
    public static <T> 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); 
 | 
    } 
 | 
} 
 |