Android單位轉換(px、sp、dp之間的轉換)
阿新 • • 發佈:2019-01-04
import android.content.Context; import android.util.TypedValue; /** * Created by du on 17/7/20. */ public class DisplayMetricsUtil { /** * px 轉為 dip. */ public static int px2dip(Context context, float pxValue) { float scale = context.getResources().getDisplayMetrics().density; return (int) (pxValue / scale + 0.5f); } /** * dp 轉為 px. */ public static int dip2px(Context context, float dpValue) { float scale = context.getResources().getDisplayMetrics().density; return (int) (dpValue * scale + 0.5f); } /** * px 轉為 sp. */ public static int px2sp(Context context, float pxValue) { float scale = context.getResources().getDisplayMetrics().scaledDensity; return (int) (pxValue / scale + 0.5f); } /** * sp 轉為 px. */ public static int sp2px(Context context, float spValue) { float scale = context.getResources().getDisplayMetrics().scaledDensity; return (int) (spValue * scale + 0.5f); } /** * dp 轉為 px. */ public static int dip2px_2(Context context, float dpValue) { return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dpValue, context.getResources().getDisplayMetrics()); } /** * sp 轉為 px. */ public static int sp2px_2(Context context, float spValue) { return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, spValue, context.getResources().getDisplayMetrics()); } }