Android单位转换 (px、dp、sp之间的转换工具类)

   在Android开发中,涉及到屏幕视频问题的时候,px、dp、sp之间的转换比较重要的一部分,所以杨哥整理了一个工具类给大伙用。

package com.zw.express.tool;


import android.content.Context;
import android.util.DisplayMetrics;
/**
 * ydc
 * @author Administrator
 *
 */
public class DensityUtils {
 /**
     * 根据手机的分辨率从 dip 的单位 转成为 px(像素)
     */
public static int dp2px(Context context, float dpValue) {
DisplayMetrics dm = context.getResources().getDisplayMetrics();
final float scale = dm.density;
return (int) (dpValue * scale + 0.5f);
}


/**
     * 根据手机的分辨率从 px(像素) 的单位 转成为 dp
     */
public static float px2dp(Context context, float pxValue) {
DisplayMetrics dm = context.getResources().getDisplayMetrics();
final float scale = dm.density;
return (pxValue - 0.5f)/scale ; 
}


 /**
     * 将px值转换为sp值,保证文字大小不变
     */
public static int px2sp(Context context, float pxValue) { 
final float fontScale = context.getResources().getDisplayMetrics().scaledDensity; 
return (int) (pxValue / fontScale + 0.5f); 



/**
     * 将sp值转换为px值,保证文字大小不变
     */
public static int sp2px(Context context, float spValue) { 
final float fontScale = context.getResources().getDisplayMetrics().scaledDensity; 
return (int) (spValue * fontScale + 0.5f); 

}

posted on 2017-06-14 22:43  XiNanHeiShao  阅读(379)  评论(0编辑  收藏  举报

导航