百度做网站的公司,广西网站建设招标公司,h5制作平台教程,l凉州区城乡建设部网站首页[css] ui设计中px、pt、ppi、dpi、dp、sp之间的关系#xff1f;
QQ20150717160352 做了几个移动端的项目之后#xff0c;深感移动端尺寸换算的必要性#xff0c;在此做个总结。
先介绍下各自的定义#xff1a;
px#xff1a;pixel#xff0c;像素#xff0c;电子屏幕…[css] ui设计中px、pt、ppi、dpi、dp、sp之间的关系
QQ20150717160352 做了几个移动端的项目之后深感移动端尺寸换算的必要性在此做个总结。
先介绍下各自的定义
pxpixel像素电子屏幕上组成一幅图画或照片的最基本单元 pt: point点印刷行业常用单位等于1/72英寸 ppi: pixel per inch每英寸像素数该值越高则屏幕越细腻 dpi: dot per inch每英寸多少点该值越高则图片越细腻 dp: dipDensity-independent pixel, 是安卓开发用的长度单位1dp表示在屏幕像素点密度为160ppi时1px长度 sp: scale-independent pixel安卓开发用的字体大小单位。 以下是换算关系
一、pt和px 公式一 1pt (DPI / 72) px
当photoshop中新建画布的分辨率为72ppi( 即 72dpi时 ) 1pt1px 当新建画布分辨率为72*2144ppi时1pt2px
二、ppi和dpi dpi最初用于衡量打印物上每英寸的点数密度。DPI值越小图片越不精细。当DPI的概念用在计算机屏幕上时就应称之为ppi。同理 PPI就是计算机屏幕上每英寸可以显示的像素点的数量。因此在电子屏幕显示中提到的ppi和dpi是一样的可认为
公式二dpippi
三、ppi计算方法 ppi是指屏幕上的像素密度其计算方法为
公式三 ppi 屏幕对角线上的像素点数/对角线长度 √ 屏幕横向像素点^2 屏幕纵向像素点^2/对角线长度
以小米2s为例该屏幕分辨率为720px*1280px4.3英寸。则点密度为 √ (720^2 1280^2) /4.3 342ppi。
四、px和dp dp为安卓开发时的长度单位根据不同的屏幕分辨率与px有不同的对应关系。
安卓端屏幕大小各不相同根据其像素密度分为以下几种规格
QQ20150717160404
1dp定义为屏幕密度值为160ppi时的1px即在mdpi时1dp 1px。 以mdpi为标准这些屏幕的密度值比为ldpi : mdpi : hdpi : xhdpi : xxhdpi 0.75 : 1 : 1.5 : 2 : 3即在xhdpi的密度下1dp2px在hdpi情况下1dp1.5px。其他类推。
公式四 1dp屏幕ppi/ 160px
以WVGA屏为例该屏幕为480px*800px按3.8寸屏算点密度 √ (480^2 800^2) / 3.8 245约等于240对应于hdpi屏幕所以该屏幕1dp1.5px
五、dp和sp dp和sp都是安卓的开发单位dp是长度单位sp是字体单位。sp与dp类似但是可以根据用户的字体大小首选项进行缩放。Android系统允许用户自定义文字尺寸大小小、正常、大、超大等等
公式五当文字尺寸是“正常”时1sp1dp而当文字尺寸是“大”或“超大”时1sp1dp。
一般情况下可认为spdp。
总结由于做设计时以xhdpi为模板xhdpi条件下1dp2px。若新建画布时将画布分辨率设为144ppi则1pt2px1dp。此时即可将pt等同于dp。标注长度的时候将长度像素除以2即为dp值。
PS在photoshop cc中切图时可直接在.png 图片图层名称前加上200%获得2倍大小的图其他比例的切图以此类推。输出的两倍图不模糊的前提是该图是photoshop中用形状工具画出来的未被栅格化的图形而不是已被栅格化的图层或外部导入的图片。
android获取屏幕尺寸、密度 有些时候我们需要获取Android手机或Pad的屏幕的物理尺寸以便于界面的设计或是其他功能的实现。下面就介绍讲一讲如何获取屏幕的物理尺寸 从网上找过不少资料发现获取屏幕尺寸并不是很复杂的编程操作下面的代码即可获取屏幕的尺寸。 在一个Activity的onCreate方法中写入如下代码 DisplayMetrics metric new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metric); int width metric.widthPixels; // 屏幕宽度像素 int height metric.heightPixels; // 屏幕高度像素 float density metric.density; // 屏幕密度0.75 / 1.0 / 1.5 int densityDpi metric.densityDpi; // 屏幕密度DPI120 / 160 / 240 但是需要注意的是在一个低密度的小屏手机上仅靠上面的代码是不能获取正确的尺寸的。比如说一部240x320像素的低密度手机如果运行上述代码获取到的屏幕尺寸是320x427。因此研究之后发现若没有设定多分辨率支持的话Android系统会将240x320的低密度120尺寸转换为中等密度160对应的尺寸这样的话就大大影响了程序的编码。所以需要在工程的AndroidManifest.xml文件中加入supports-screens节点具体的内容如下 这样的话当前的Android程序就支持了多种分辨率那么就可以得到正确的物理尺寸了。
个人简介
我是歌谣欢迎和大家一起交流前后端知识。放弃很容易 但坚持一定很酷。欢迎大家一起讨论
主目录
与歌谣一起通关前端面试题