各种像素之间的转换(px、dp、dip、sp)

废话不多说,直接上代码~

public class DisplayUtil {

	/**
	 * 将px值转换为dip或dp值,保证尺寸大小不变
	 * 
	 * @param pxValue
	 * @param density
	 *            (DisplayMetrics类中属性density)
	 * @return
	 */

	public static int px2dip(float pxValue, float density) {
		return (int) (pxValue / density + 0.5f);
	}

	/**
	 * 将dip或dp值转换为px值,保证尺寸大小不变
	 * 
	 * @param dipValue
	 * @param density
	 *            (DisplayMetrics类中属性density)
	 * @return
	 */

	public static int dip2px(float dipValue, float density) {
		return (int) (dipValue * density + 0.5f);
	}

	/**
	 * 将px值转换为sp值,保证文字大小不变
	 * 
	 * @param pxValue
	 * @param fontScale
	 *            (DisplayMetrics类中属性scaledDensity)
	 * @return
	 */

	public static int px2sp(float pxValue, float fontScale) {
		return (int) (pxValue / fontScale + 0.5f);
	}

	/**
	 * 将sp值转换为px值,保证文字大小不变
	 * 
	 * @param spValue
	 * @param fontScale
	 *            (DisplayMetrics类中属性scaledDensity)
	 * @return
	 */

	public static int sp2px(float spValue, float fontScale) {
		return (int) (spValue * fontScale + 0.5f);
	}

}


你可能感兴趣的:(各种像素之间的转换(px、dp、dip、sp))