说明:
使用代码设置TextView需要转换px和sp的,并且getTextSize和setTextSize单位得到和设置的单位又是不一样的。
etTextSize和setTextSize:
getTextSize返回值是以像素(px)为单位的,而setTextSize()是以sp为单位的。
px和sp转换:
/** * 将px值转换为sp值,保证文字大小不变 * * @param pxValue * @return */ public static int px2sp(float pxValue) { final float fontScale = getContext().getResources().getDisplayMetrics().scaledDensity; return (int) (pxValue / fontScale + 0.5f); } /** * 将sp值转换为px值,保证文字大小不变 * * @param spValue * @return */ public static int sp2px(float spValue) { final float fontScale = getContext().getResources().getDisplayMetrics().scaledDensity; return (int) (spValue * fontScale + 0.5f); }