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);
|
}
|
}
|