屏幕适配中的dip与px之间的转化
在项目中,为了适配所有的屏幕,有时候会使用到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之间的转化相关推荐
- 【原】设计稿中字体pt与px之间的转化
通常,设计网页时,字体一般会使用像素(px)或者倍数(em).某一天开始重构页面,用PS打开设计师给过来的稿子,开始切图,在查看文字时,发现字体大小是用pt来设置的,⊙﹏⊙b汗,如下图: 为了解pt和 ...
- Android中关于dip和px以及转换的总结
我们在页面布局的时候,经常会设置容器的长度,但是到底该使用哪个作为长度的单位而懊恼.在Android中支持的描述大小区域的类型有以下几种: px(pixels)--像素:不同的设备显示效果相同,一般我 ...
- 关于Android获取屏幕宽高、dp、sp、px之间的转化
开发过程中,动态创建布局,或者自定义view,少不了需要获取屏幕宽高,这里的宽高指手机屏幕的分辨率,单位是px,而我们在布局文件中用到的空间宽高单位是dp,字体用的是sp. 这几个计量单位之间,是有关 ...
- Android AutoSize屏幕适配中图标及字体放大的问题解决
现象: 项目接入Android AutoSize屏幕适配框架,项目本身主界面是横屏操作的界面.测试中用户反馈在vivo x27的手机或者其他机型也会出现(没测试出来)横屏后所有的图标及字体都放大. 原 ...
- ui字体 pt 和 前端字体 px 之间的转化
在我们开发过程中ui给我们标注的字体通常是用px或者pt标记的,但是oc提供的size的单位值是pt,这往往给我们在计算字体的时候造成一些困扰,许多新手更甚直接用px或者ps去设置字体的大小造成界面的 ...
- C# .net中json字符串和对象之间的转化方法
json作为作为一种最常用的数据,应用很广泛,在.net中如何把一个对象转化为json字符串呢? 主要有一下几种 1按照json的定义自己转化,难度很大,但很灵活.需要自己处理各种特殊字符,各种数据类 ...
- android分辨率px跟dp,Android屏幕适配 px,dp,dpi及density的关系与深入理解
PX(pixel): 即传统计算机语言中描述的像素,在Android则代表绝对像素. 之所以Android中不推荐使用这种单位,正是因为不同生产厂商,不同品牌,不同屏幕的设备,其分辨率亦不一. 举例来 ...
- Android屏幕适配 px,dp,dpi及density的关系与深入理解(转载)
PX(pixel): 即传统计算机语言中描述的像素,在Android则代表绝对像素. 之所以Android中不推荐使用这种单位,正是因为不同生产厂商,不同品牌,不同屏幕的设备,其分辨率亦不一. 举例来 ...
- Android屏幕适配 px,dp,dpi及density的关系与深入理解
PX(pixel): 即传统计算机语言中描述的像素,在Android则代表绝对像素. 之所以Android中不推荐使用这种单位,正是因为不同生产厂商,不同品牌,不同屏幕的设备,其分辨率亦不一. 举例来 ...
最新文章
- 深度学习机器臂控制_深度学习新进展:可自建任务解决模型的机器人问世
- python中的模块和包
- 概率论与数理统计(二)
- Mybatis字段模糊查询
- zzuli 2177 Contest - 河南省多校连萌(四)(简单题)
- leetcode —— 2. 两数相加 (对于链表更新的细节)
- MSSql Server 自定义导出
- 【Django】(3)创建网页:学习笔记主页
- maven安装与配置等相关知识
- 《Linux内核修炼之道》——2.2 编译内核
- decorator 装饰
- ITIL 4知识系列之ITIL4的设计框架解析
- java集合试题_Java练习题 - 集合
- 电商运营小白,如何快速入门学习数据分析?
- SuperMap iDesktop常见问题解答集锦(八)
- 基于ISO27001的数据中心信息安全管理体系
- 理性分析三星盖乐世炸弹7
- HNUSTOJ-1621 Picking Cabbage(状态压缩DP)
- 1980年的图灵奖获得者-C. Antony R. Hoare
- Cisco RV340命令执行漏洞(CVE-2022-20707)及关联历史漏洞分析
热门文章
- git连接华为云DevCloud
- 单链表逆置(头插法图解)
- 零基础自学3D游戏建模必备,从入门到精通
- 2020年10月28日普级组总结
- 2023慕尼黑上海电子展 邀 请 函
- 这些“古老”的编程语言,你还在使用吗?
- 微信小程序连接丰桥接口----路由查询
- java.lang.RuntimeException: java.io.IOException: Couldn‘t create proxy provider null错误解决
- C语言中fputc函数
- java-net-php-python-jspmKTV管理系统计算机毕业设计程序