dp计算
来源:互联网 发布:中国省份数据库 编辑:程序博客网 时间:2024/06/04 00:31
1.首先什么是dp?什么是px?dp和px有什么区别?dp与px之间的转换关系?
1.什么px?图像显示的基本单元,我们知道屏幕是由很多点组成的,因为点特别小,所以我们看起来就像是一片的。那其中的每一个点就是像素点,而px呢?就表示1px=160个像素点。
什么是英寸?英寸就相当于一个长度单位,和厘米一样。平时我们都说手机是多少多少英寸的?那这个英寸到底是表示哪里呢?其实我们平时说的手机是多少多少英寸的,是说手机的屏幕对角线,通过比较手机屏幕的对角线长度进而比较手机屏幕的大小?
我们平时经常说手机的分辨率是多大,1920x1080,这个表示什么意思呢?表示屏幕高有1920个像素点,宽有1080个像素点。那到这里我们就要引入一个新的概念了ppi。那什么是ppi呢?ppi(Pixel per inch)每英寸像素数。我们把前面的总结一下。手机1920X1080分辨率,4.96英寸,那怎么求ppi呢?
其实非常简单,4.96英寸表示屏幕的对角线,问题就是要求出对角线上有多少个像素点。这个勾股定理秒解。所以一英寸就有这么多像素点:sqrt(1920*1920+1080*1080)/4.96.
又引出一个问题了,我们知道手机有很多种分辨率,而开发应用时,设计界面,不可能根据不同的手机分辨率设计一款应用。比如,一个100*100的图片,在400*800分辨率的屏幕上显示和在1920*1080屏幕上显示肯定是不一样的,在400*800上显示比较大,而在1920*1080上则比较小了,为什么?这点非常简单,因为400*800点屏幕的像素密度比1920*1080的小太多了,以至于显示100*100的图片占用的长度要变大,而1920*1080就占用一点空间,这样显示就没有不好。所以android引入了一个新的单位dp。设想,100*100的图片在400*800的屏幕上显示时,可以让他缩小一点,不占用100*100像素这么大,而在1920*1080上时,把他放大一点,比如放大到200*200,来显示,尽可能的大到在不同的屏幕上,显示的屏幕长度时一样的。那怎么计算dp呢?
android中为了给计算dp设置了一个参考值,就是1px=160ppi,也就是1px表示160个像素点,这样我们来计算 dp/px=ppi/160;所以dp=(ppi/160)*px。这样子我们就得到了px与dp的转换。
对于上面的手机屏幕分辨率是1920*1080,4.96英寸,此时1dp=?px ?这个问题就很简单了。
结果:
2.0
所以此时dp/px=2.0.换句话来说1dp=2.0px。这样就可以达到不同分辨率的屏幕显示同一个界面显示一样的效果。想想,我们在设计界面时,使用dp作为单位,假如分辨率低的手机显示这个界面,这时候1dp=0.75px,如果分辨率高的手机显示这个界面,此时1dp=2.0px,两个手机显示的界面是一样的,相同控件在手机上显示的长度是一样的,分辨率低的用了少量像素点,分辨率高的用了大量像素点。
此时就可以满足不同的手机屏幕了。
- dp计算
- DP计算最大和HDU1003
- android 屏幕dp值计算
- OpenJudge_P2988 计算字符串距离(DP)
- 蓝桥杯 概率计算(DP)
- dpi px dp计算公式
- POJ 1566 The Doors(计算几何+dp)
- 2013多校九1003-HDU4688-DP+计算几何
- UVALive 2221 Frontier(计算几何 + DP)
- hdoj1466 计算直线的交点数 ( DP )
- (Relax njuptoj)1009 数的计算(DP)
- android屏幕 像素 DP 相关计算
- dp 01背包避免重复计算
- 蓝桥杯 - 概率计算 (概率DP)
- BZOJ 1415 - 利用定义计算期望 + DP
- 区间DP 矩阵相乘复杂度计算
- hdu1466计算交点数(DP)
- 费用提前计算的区间dp*3
- QT5实现摄像头预览与扑捉图像
- 自定义键盘类
- Elasicsearch 配置详解
- LintCode 二叉树的最大深度
- 这是一份很有诚意的 Protocol Buffer 语法详解
- dp计算
- 山东省第七届ACM省赛 Triple Nim
- 删除数据
- Android 根据文件Uri找文件路径 和根据路径找文件Uri
- 往mysql中插入 自增id不连续(曾经的坑)
- Kth Smallest Element in a BST
- DSP2808与ARM STM32F103的SPI通讯例程及详解
- PowerDesigner16.5快速入门显示,注释comment配置方法,以及创建sql文件过程中需要注意的一些问题
- Unknown module(s) in QT: multimedia