Android开发中常用屏幕单位转换

2018-07-20    来源:open-open

容器云强势上线!快速搭建集群,上万Linux镜像随意使用
public class DisplayTool {
   //要根据实际情况获取到上下文Context,也可以在方法中加入context作为参数
    private static final float density = context.getResources().getDisplayMetrics().density;
    private static final float scaledDensity =context.getResources().getDisplayMetrics().scaledDensity;

    /**
     * 将px值转换为dip或dp值,保证尺寸大小不变
     */
    public static int px2dip(float pxValue) {
        return (int) (pxValue / density + 0.5f);
    }

    /**
     * 将dip或dp值转换为px值,保证尺寸大小不变
     */
    public static int dip2px(float dipValue) {
        return (int) (dipValue * density + 0.5f);
    }

    /**
     * 将px值转换为sp值,保证文字大小不变
     */
    public static int px2sp(float pxValue) {
        return (int) (pxValue / scaledDensity + 0.5f);
    }

    /**
     * 将sp值转换为px值,保证文字大小不变
     */
    public static int sp2px(float spValue) {
        return (int) (spValue * scaledDensity + 0.5f);
    }

}

标签: isp

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。

上一篇:Android用SurfaceView播放本地视屏(音频)文件

下一篇:Android利用Volley框架加载网络图片