博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
px,dp,sp三者的转换
阅读量:6969 次
发布时间:2019-06-27

本文共 1279 字,大约阅读时间需要 4 分钟。

dp是虚拟像素,在不同的像素密度的设备上会自动适配,

比如: 在320x480分辨率,

像素密度为160,1dp=1px 在480x800分辨率,像素密度为240,1dp=1.5px

计算公式:1dp*像素密度/160 = 实际像素数  

 

下面是工具类:

import android.util.TypedValue;   

import android.content.Context;   

//常用单位转换的辅助类   

public class DensityUtil{   

    public DensityUtil()   

    {   

        /* cannot be instantiated */   

        throw new UnsupportedOperationException("cannot be instantiated");   

    }   

   

    /** 

     * dp转px 

     *  

     * @param context 

     * @param val 

     * @return 

     */   

    public static int dp2px(Context context, float dpVal)   

    {   

        return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,   

                dpVal, context.getResources().getDisplayMetrics());   

    }   

   

    /** 

     * sp转px 

     *  

     * @param context 

     * @param val 

     * @return 

     */   

    public static int sp2px(Context context, float spVal)   

    {   

        return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP,   

                spVal, context.getResources().getDisplayMetrics());   

    }   

   

    /** 

     * px转dp 

     *  

     * @param context 

     * @param pxVal 

     * @return 

     */   

    public static float px2dp(Context context, float pxVal)   

    {   

        final float scale = context.getResources().getDisplayMetrics().density;   

        return (pxVal / scale);   

    }   

   

    /** 

     * px转sp 

     *  

     * @param fontScale 

     * @param pxVal 

     * @return 

     */   

    public static float px2sp(Context context, float pxVal)   

    {   

        return (pxVal / context.getResources().getDisplayMetrics().scaledDensity);   

    }   

   

}

转载于:https://www.cnblogs.com/wgha/p/5756089.html

你可能感兴趣的文章
J.U.C工具类中的CountDownLatch和CyclicBarrier
查看>>
dovecot+mysql
查看>>
Mysql密码管理及授权
查看>>
JAVA线程安全之synchronized关键字的正确用法
查看>>
springmvc+mybatis+dubbo分布式平台-maven构建根项目
查看>>
一个小常识
查看>>
Nginx防盗链 Nginx访问控制 Nginx解析php相关配置 Nginx代理
查看>>
解决虚拟机中使用ntpdate报错:ntpdate[46700]: no server suitab
查看>>
Docker 快速删除所有容器
查看>>
【OCP认证12c题库】CUUG 071题库考试原题及答案(27)
查看>>
OSS支持IPV6/IPV4双栈访问域名
查看>>
阿里云应用实时监控 ARMS 再升级,支持 Prometheus 开源生态
查看>>
最全面的IGMP协议总结!
查看>>
你还在 Select * 吗?
查看>>
机器学习能革了数据库索引的命吗?
查看>>
把PDF转成PPT的免费工具
查看>>
多线程 NSCondition线程同步(消费者等待工厂制作完成,工厂发消息)
查看>>
python 冒泡排序加入判断
查看>>
WEB+NFS+DNS的搭建
查看>>
SQL Server2008导出数据生成文件
查看>>