android学习笔记 单位转换工具类

来源:互联网 发布:淘宝联盟官方网站首页 编辑:程序博客网 时间:2024/05/17 06:49

由于各种手机的屏幕密度不同,导致同样像素大小的长度,在不同密度的屏幕上显示长度不同。在程序中,可以非常方便的对这些单位进行转换。下面代码给出了一种转换的方法。

/** * dp、sp转换为px的工具类 * * Created by Administrator on 2016/8/6. */public class DisplayUtil {    /**     *将px值转换为dip或dp,保证尺寸大小不变     *     *@auther Dunn Lin     *@param pxValue     *@return     *create at 2016/8/6 11:54     */    public static int px2dip(Context context,float pxValue){        //scale(DisplayMetrics类中density属性)        final float scale = context.getResources().getDisplayMetrics().density;        return (int)(pxValue/scale+0.5f);    }    /**     * 将dip或dpz值转换为px值,保证尺寸大小不变     *@auther Dunn Lin     *@param dipValue     *@return     *create at 2016/8/6 12:00     */    public static int dip2px(Context context,float dipValue){        //scale(DisplayMetrics类中density属性)        final float scale = context.getResources().getDisplayMetrics().density;        return (int)(dipValue*scale + 0.5f);    }    /**     * 将px值转换为sp值,保证文字大小不变     *     *@auther Dunn Lin     *@param pxValue     *@return     *create at 2016/8/6 12:12     */    public static int px2sp(Context context,float pxValue){        //fontScale(DisplayMetrics类中属性scaleDensity)        final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;        return (int)(pxValue/fontScale+0.5);    }    /**     * 将sp值转换为px值,保证字体大小不变     *     *@auther Dunn Lin     *@param spValue     *@return     *create at 2016/8/6 12:19     */    public static int sp2px(Context contex,float spValue){        //fontScale(DisplayMetrics类中属性scaleDensity)        final float fontScale = contex.getResources().getDisplayMetrics().scaledDensity;        return  (int)(spValue*fontScale+0.5f);    }}


0 0
原创粉丝点击