一直困扰设计师多年的Android 单位 dp
轻松理解Android开发单位DP ,让设计与开发高度匹配,整合了网上各大资料汇总一个通俗易懂的。
一直困扰设计师多年的Android 单位 dp
设计这么多年了,相信很多设计师,一直被DP搞得晕头转向的,因为我们设计常用单位是PX ,设计的时候我们用这个单位,但是开发人员则用dp,如何保证设计的产品效果图,文字能让开发人员,准确还原,这里我们就不得不提sp
Android 为什么引入dp?
是因为这个世界上存在着很多不同屏幕密度的手机,屏幕密度是什么?就是ppi,就是单位长度里的像素数量。
想象一下,如果这些手机的尺寸一样,屏幕密度相差很大,那么是不是说一个手机水平方向上像素很少,另一个手机水平方向上像素很多?那我们画同样pix数量的时候,它显示的长度不就会不一样了?
比如下图中的两个手机,同时设置2px长度的Button,在屏幕密度较高的手机里就会显示的比较小。
而同时设置的2dp长度的Button,在两个手机上显示的大小是一样的。
Android常用单位:
1.屏幕尺寸in(英寸):指实际的物理尺寸,为屏幕对角线的测量。一般讲的大小单位都是英寸,比如iPhone5S的屏幕尺寸是4英寸。
2.像素(pixel):屏幕上的点,基本原色素及其灰度的基本编码。
3.分辨率(Resolution):是指屏幕上垂直方向和水平方向上的像素个数。(比如iPhone5S的分辨率是1136*640)
4.dpi:dot per inch,就是每英寸的像素数,也叫做屏幕密度。这个值越大,屏幕就越清晰。
5. dp=dip : device independent pixels(设备独立像素):一种基于屏幕密度的抽象单位。在每英寸160点的显示器上,1dp = 1px。
6. sp:Scale-independent pixels,它是安卓的字体单位,以160PPI屏幕为标准,当字体大小为 100%时,1sp=1px。
对ppi 的理解:
ppi= Pixels per inch,每英寸上的像素数数目,即 "像素密度“
屏幕尺寸in(英寸):指实际的物理尺寸,为屏幕对角线的测量。
而ppi的运算方式是:
PPI = √(长度像素数² + 宽度像素数²) / 屏幕对角线英寸数
举个简单的列子,iphone5的ppi是多少?ppi=√(1136px²+ 640px²)/4 in=326ppi(视网膜Retina屏)
为解决Android设备碎片化,引入一个概念dp,一种基于屏幕密度的抽象单位。
Android把屏幕密度分为了四个广义的大小:
低(120ppi)、中(160ppi)、高(240ppi)和超高(320ppi)
dp是(设备独立像素)不同设备有不同的显示效果,这个和设备硬件有关是虚拟像素,在不同的像素密度的设备上会自动适配。
在每英寸160ppi的显示器上,1dp= 1px。
关于dp与px 单位换算:
dp=dip:device independent pixels(设备独立像素)不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA推荐使用这个,不依赖像素。
dp是一种与密度无关的像素单位,在每英寸160点的屏幕上,1dp=1px
dp和px的换算公式 :dp*ppi/160 =px
比如,在一个240ppi的屏幕里,比如1dp x 240/160 =1.5px。 即 1dp=1.5px,
mdpi(160ppi) 1dp = 1px ; hdpi (240ppi)1dp=1.5px;
Xhdpi(320ppi )1dp=2px; xxhdpi(480ppi )1dp=3px;
对于设计人员而已,我们要把dp转化为px, 只是需要利用公式:
px=dp*ppi/160
mdpi: 1.0 (baseline) 1dp=px
hdpi: 1.5 1dp=1.5px
xhdpi: 2.0 1dp=2px
xxhdpi3.0 1dp=3px
把dp 转化为px 公式为:
dp乘以每个密度下面的系数比值
常见手机分辨率:
4:3
VGA 640*180(video graphics array)
QVGA 320*240(Quarter VGA)
HVGA 480*320(half-size VGA)
SVGA 800*600(Supper VGA)
5:3
WVGA 800*480(WideVGA)
16:9
FWVGA 854*480(full wide VGA)
HD 1920*1080(high definition)
QHD 960*540
720p 1280*720 标清
1080P 1920*1080 超清
Android 字体单位:
sp:Scale-independentpixels,它是安卓的字体单位,以160PPI屏幕为标准,当字体大小为 100%时,1sp=1px。
Android系统允许用户自定义文字尺寸大小(小、正常、大、超大等等),当文字尺寸是“正常”时1sp=1dp=0.00625英寸,而当文字尺寸是“大”或“超大”时,1sp>1dp=0.00625英寸。类似我们在windows里调整字体尺寸以后的效果——窗口大小不变,只有文字大小改变。
默认系统字体 英文:Roboto;中文:DroidSans Fallback 与微软雅黑很像
Android L 常用字体边距规格对照表:
AndroidL 常用字体边距规格对照表:参考资料:
参考资料:
http://www.cnblogs.com/greatverve/archive/2011/12/28/android-dip-dp-sp-pt-px.html
http://zhuanlan.zhihu.com/zhezhexiong/19565895
http://www.360doc.com/content/07/0111/10/11821_326037.shtml
一直困扰设计师多年的Android 单位 dp的更多相关文章
- Android 单位dp和px之间相互转换
public class DensityUtil { /** * 根据手机的分辨率从 dp 的单位 转成为 px(像素) */ public static int dip2px(Context con ...
- Android开发(十)——像素单位dp、px、pt、sp的比较
dp(dip): device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA.HVGA和QVGA 推荐使用这个,不依赖 ...
- 关于android的单位dp与px
原文:Android中dp和px之间进行转换 官方文档:http://developer.android.com/guide/practices/screens_support.html The de ...
- Android中常用单位dp,px,sp之间的相互转换
MainActivity如下: package cc.testunitswitch; import android.os.Bundle; import android.util.DisplayMetr ...
- android:单位和尺寸
为了要让程序拥有更好的屏幕适配能力,在指定控件和布局大小的时候 最好使用 match_parent 和 wrap_content,尽量避免将控件的宽和高设定一个固定值.不过在 有些情况下,仅仅使用 m ...
- 针对iPhone的pt、Android的dp、HTML的css像素与dpr、设计尺寸和物理像素的浅分析
最近被一朋友问到:css中设置一DOM的height:65px,请问显示的高度是否和Android的65dp的元素等高?脑子里瞬间闪现了一堆的概念,如dpr,ppi,dp,pt等,然而想了一阵,浆糊了 ...
- android 解释dp,px,pt,sp单位
1.dp(dip):不同设备有不同的显示效果,这个和设备硬件有关系,一般我们为了支持WVGA,HVGA和QVGA对剑使用这个,它是不依赖像素的 2.px:pixels(像素),不同设备显示效果相同,一 ...
- android中像素单位dp、px、pt、sp的比较
dp(dip): device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA.HVGA和QVGA 推荐使用这个,不依赖 ...
- Android单位转换 (px、dp、sp之间的转换工具类)
在Android开发中,涉及到屏幕视频问题的时候,px.dp.sp之间的转换比较重要的一部分,所以杨哥整理了一个工具类给大伙用. package com.zw.express.tool; import ...
随机推荐
- CCF CSP 201509-2 日期计算
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201509-2 日期计算 问题描述 给定一个年份y和一个整数d,问这一年的第d天是几月几日? ...
- linux系统host修改
有时候我们需要修改主机的host主机名,方便管理和识别自己的服务器,修改步骤如下: 第一步: vi /etc/hosts 正常情况下,修改了第一步就可以了,如果通过hostname命令查看还是修改以 ...
- hdoj1203 I NEED A OFFER!(DP,01背包)
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1203 思路 求最少能收到一份offer的最大概率,可以先求对立面:一份offer也收不到的最小概率,然 ...
- 创建NuGet包
创建NuGet包 在创建一个NuGet包之前我们应该先创建一个以.nuspec为后缀的xml清单文件,这个清单文件描述了包的内容,在安装NuGet包的过程中这个清单文件扮演者很重要的角色.实际上它的作 ...
- awk 基本函数用法
gsub函数有点类似于sed查找和替换.它允许替换一个字符串或字符为另一个字符串或字符,并以正则表达式的形式执行.第一个函数作用于记录$0,第二个gsub函数允许指定目标,然而,如果未指定目标,缺省为 ...
- pip作用
介绍 pip 是一个安装和管理 Python 包的工具,python安装包的工具有easy_install, setuptools, pip,distribute.使用这些工具都能下载并安装djang ...
- BZOJ.2194.快速傅立叶之二(FFT 卷积)
题目链接 \(Descripiton\) 给定\(A[\ ],B[\ ]\),求\[C[k]=\sum_{i=k}^{n-1}A[i]*B[i-k]\ (0\leq k<n)\] \(Solut ...
- 【推导】Codeforces Round #484 (Div. 2) C. Cut 'em all!
题意:给你一棵树,让你切掉尽可能多的边,使得产生的所有连通块都有偶数个结点. 对于一棵子树,如果它有奇数个结点,你再从里面怎么抠掉偶数结点的连通块,它都不会变得合法.如果它本来就有偶数个结点,那么你怎 ...
- [POI2015]Pustynia
[POI2015]Pustynia 题目大意: 给定一个长度为\(n(n\le10^5)\)的正整数序列\(a\),每个数都在\(1\)到\(10^9\)范围内,告诉你其中\(s\)个数,并给出\(m ...
- Wannafly挑战赛22游记
Wannafly挑战赛22游记 幸运的人都是相似的,不幸的人各有各的不幸. --题记 A-计数器 题目大意: 有一个计数器,计数器的初始值为\(0\),每次操作你可以把计数器的值加上\(a_1,a_2 ...