在项目中,为了适配所有的屏幕,有时候会使用到dip和px之间的转换

dip 称为设备独立像素,在不同的移动设备上,有着不同的显示效果,与设备的显示器的单位像素点有关。

px则是真是的物理像素,1px就是一个真实像素点。

举例说明一下独立像素与真实像素的区别

比如,在横向480px的设备上绘制宽度为240px的区域,这时,正好绘制的宽度是总宽度的一半,但是当在屏幕宽度为960px的设备上运行时,就会只占到宽度的1/4,这样的话,就不能达到屏幕适配的目的了。如果使用的是dip,或是dp,sp,如果设置为宽度为240dp(建议sp用来设置字体大小),那么就是把屏幕宽度分为了480份,它占240份,无论是在宽度为960px还是480px的屏幕上,都会占到宽度的一半。这就是无关像素点的好处。

下面所以下两种转换方式

/**
 * dip转换像素px
 */
public static int dip2px(Context context, float dpValue) {try {final float scale = context.getResources().getDisplayMetrics().density;
        return (int) (dpValue * scale + 0.5f);
    } catch (Exception e) {e.printStackTrace();
    }return (int) dpValue;
}
/**
 * 像素px转dip
 *
 * @param context
 * @param pxValue
 * @return
 */
public static int px2dip(Context context, float pxValue) {try {/**获得屏幕分辨率**/
        final float scale = context.getResources().getDisplayMetrics().density;
        return (int) (pxValue / scale + 0.5f);
    } catch (Exception e) {e.printStackTrace();
    }return (int) pxValue;
}

屏幕适配中的dip与px之间的转化相关推荐

  1. 【原】设计稿中字体pt与px之间的转化

    通常,设计网页时,字体一般会使用像素(px)或者倍数(em).某一天开始重构页面,用PS打开设计师给过来的稿子,开始切图,在查看文字时,发现字体大小是用pt来设置的,⊙﹏⊙b汗,如下图: 为了解pt和 ...

  2. Android中关于dip和px以及转换的总结

    我们在页面布局的时候,经常会设置容器的长度,但是到底该使用哪个作为长度的单位而懊恼.在Android中支持的描述大小区域的类型有以下几种: px(pixels)--像素:不同的设备显示效果相同,一般我 ...

  3. 关于Android获取屏幕宽高、dp、sp、px之间的转化

    开发过程中,动态创建布局,或者自定义view,少不了需要获取屏幕宽高,这里的宽高指手机屏幕的分辨率,单位是px,而我们在布局文件中用到的空间宽高单位是dp,字体用的是sp. 这几个计量单位之间,是有关 ...

  4. Android AutoSize屏幕适配中图标及字体放大的问题解决

    现象: 项目接入Android AutoSize屏幕适配框架,项目本身主界面是横屏操作的界面.测试中用户反馈在vivo x27的手机或者其他机型也会出现(没测试出来)横屏后所有的图标及字体都放大. 原 ...

  5. ui字体 pt 和 前端字体 px 之间的转化

    在我们开发过程中ui给我们标注的字体通常是用px或者pt标记的,但是oc提供的size的单位值是pt,这往往给我们在计算字体的时候造成一些困扰,许多新手更甚直接用px或者ps去设置字体的大小造成界面的 ...

  6. C# .net中json字符串和对象之间的转化方法

    json作为作为一种最常用的数据,应用很广泛,在.net中如何把一个对象转化为json字符串呢? 主要有一下几种 1按照json的定义自己转化,难度很大,但很灵活.需要自己处理各种特殊字符,各种数据类 ...

  7. android分辨率px跟dp,Android屏幕适配 px,dp,dpi及density的关系与深入理解

    PX(pixel): 即传统计算机语言中描述的像素,在Android则代表绝对像素. 之所以Android中不推荐使用这种单位,正是因为不同生产厂商,不同品牌,不同屏幕的设备,其分辨率亦不一. 举例来 ...

  8. Android屏幕适配 px,dp,dpi及density的关系与深入理解(转载)

    PX(pixel): 即传统计算机语言中描述的像素,在Android则代表绝对像素. 之所以Android中不推荐使用这种单位,正是因为不同生产厂商,不同品牌,不同屏幕的设备,其分辨率亦不一. 举例来 ...

  9. Android屏幕适配 px,dp,dpi及density的关系与深入理解

    PX(pixel): 即传统计算机语言中描述的像素,在Android则代表绝对像素. 之所以Android中不推荐使用这种单位,正是因为不同生产厂商,不同品牌,不同屏幕的设备,其分辨率亦不一. 举例来 ...

最新文章

  1. 深度学习机器臂控制_深度学习新进展:可自建任务解决模型的机器人问世
  2. python中的模块和包
  3. 概率论与数理统计(二)
  4. Mybatis字段模糊查询
  5. zzuli 2177 Contest - 河南省多校连萌(四)(简单题)
  6. leetcode —— 2. 两数相加 (对于链表更新的细节)
  7. MSSql Server 自定义导出
  8. 【Django】(3)创建网页:学习笔记主页
  9. maven安装与配置等相关知识
  10. 《Linux内核修炼之道》——2.2 编译内核
  11. decorator 装饰
  12. ITIL 4知识系列之ITIL4的设计框架解析
  13. java集合试题_Java练习题 - 集合
  14. 电商运营小白,如何快速入门学习数据分析?
  15. SuperMap iDesktop常见问题解答集锦(八)
  16. 基于ISO27001的数据中心信息安全管理体系
  17. 理性分析三星盖乐世炸弹7
  18. HNUSTOJ-1621 Picking Cabbage(状态压缩DP)
  19. 1980年的图灵奖获得者-C. Antony R. Hoare
  20. Cisco RV340命令执行漏洞(CVE-2022-20707)及关联历史漏洞分析

热门文章

  1. git连接华为云DevCloud
  2. 单链表逆置(头插法图解)
  3. 零基础自学3D游戏建模必备,从入门到精通
  4. 2020年10月28日普级组总结
  5. 2023慕尼黑上海电子展 邀 请 函
  6. 这些“古老”的编程语言,你还在使用吗?
  7. 微信小程序连接丰桥接口----路由查询
  8. java.lang.RuntimeException: java.io.IOException: Couldn‘t create proxy provider null错误解决
  9. C语言中fputc函数
  10. java-net-php-python-jspmKTV管理系统计算机毕业设计程序