Android 为什么 dp2px 或 px2dp 公式需要加 0.5f
来源:互联网 发布:微店淘宝快速搬家 编辑:程序博客网 时间:2024/05/22 10:28
网上 dp2px 和 px2dp 公式:
这两个公式网上很多,但为什么 最后都要加上0.5f 呢?按正常的推理应该是 dip = pxValue / scale 和 px = dipValue * scale ,
实际上准确的值就应该是 咱们推理出来的,之所以后面加上0.5f是因为 咱们要的只不是那么精准,根据推理算出来的是个浮点数,而咱们程序中一般使用int类型就够了,这里涉及到一个类型转换精准度问题,熟悉java特效的同学应该知道
float 类型的 4.1 和4.9 强转成int类型后,会失去精准度变成 int类型的4, 而如果咱们想四舍五入的话,把他们都加上0.5f,这样转换出来的结果就是:
4.4 + 0.5 = 4.9 转为int 还是4,而4.5 + 0.5 = 5.0 转换成int后就是5,正好是四舍五入,这样就保证了咱们算出来的值相对精准。
阅读全文
0 0
- Android 为什么 dp2px 或 px2dp 公式需要加 0.5f
- Android 为什么 dp2px 或 px2dp 公式需要加 0.5f
- Android初学-----px2dp,dp2px
- dp2px px2dp
- android dp2px
- Android dp2px
- dp2px
- 为什么有时候启动Activity需要加FLAG_ACTIVITY_NEW_TASK
- 为什么有时候启动Activity需要加FLAG_ACTIVITY_NEW_TASK
- android 为什么需要签名
- android 为什么需要cygwin
- android 为什么需要签名
- Android中为什么需要服务?
- linux的shell执行程序时为什么需要加一个 "./"?
- [Cookie]wget下载jdk 为什么需要加cookie
- 晶振为什么要加电容 需要配多大电容
- 为什么内部类访问局部变量需要加final修饰?
- 超链接或form中是否需要加.action后缀
- JSON 与 对象 、集合 之间的转换
- jQuery的一些父级、子级、同级选择器。
- 服务http/timeout案例
- 前端js面试技巧(2)——JS-WEB-API部分
- 单词的添加与查找-LintCode
- Android 为什么 dp2px 或 px2dp 公式需要加 0.5f
- Linux之任务计划crontab
- mxgraph的右键菜单
- Linux添加nginx为系统服务(service nginx status/start/stop/restart)
- SQL servicer 2008数据库的备份与恢复
- Java多线程内存模型学习
- 二叉树中和为某一值的路径
- NOIP模拟赛 数论 积性函数 + BSGS + Lucas模进制数位Dp
- java 将数组转化为集合列表