pxandroid
⑴ android中px,dp,dip和sp有什么不同
px就是一个像素宽度-独立像素(设备),设备独立像素(dip)是你想使用的设备的字体大小,而且设备独立像素对于所有的事情。在这里设备独立像素——dphttp://developer.android.com/guide/topics/resources/more-resources.html#Dimension
Px
像素-相当于屏幕上的实际像素。
In
英寸-基于屏幕的物理尺寸
Mm
毫米-基于屏幕的物理尺寸
Pt
点-基于屏幕的物理尺寸,英寸的72分之一
Dp
密度-独立像素-一个基于屏幕的物理密度的抽象的单位。这个单位和160分辨率的屏幕是成比例的,所以在一个160分辨率的屏幕下,1dp就是1px。Dp和像素的比率将会随着屏幕的密度改变而改变,但是并不一定就是正比。注意:编译器既接受“dip”也接受“dp”,尽管dp比sp更符合。
Sp
刻度-独立像素-它就像dp单位,但是它也取决于用户偏好的字体大小。当指定字体大小的时候,我推荐您使用这个单位,因为它既调整了屏幕的密度,也调整了使用者的偏好。
⑵ Android编程中,sp和px和dp有什么区别啊,或者说给代表什么
sp: 一般用来设置字体的大小。设置sp时,如果设置系统的字体为大、小等,应用程序的字体也会跟随系统变化。
px: 是绝对像素点。设置大小时5px就是五个像素点的长度。
dp: device independent pixels(设备独立像素),一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。
⑶ iOS、Android等开发中px、ppi、pt、pd、dpi的个人理解
作为一名iOS开发者,以前对这些概念懵懵懂懂,最近看了很多资料记录下对这些概念的理解,主要以iOS和Android平台为切入
在iphone3gs的时候,屏幕的分辨率为320x480px、ppi =164 ,这时苹果把iOS系统的逻辑分辨率也设计为320x480pt 、dpi = 164 ,并且后面一值遵循这个UI设计规范(1pt 的大小约等于ppi为164的情况下单个像素的大小)。在没有出现plus及iphonex系列的之前的设备的都是dpi≈164, 1pt 的物理大小是固定的,但对应的像素有可能不一样,后期出现的plus及iphonex系列的dpi都比164小一点点,所以1pt的大小也对应的有变大一点点,但是这变化是很小的,应该是苹果系统级别的大屏适配吧 。
苹果的设计规范一直是在保持dpi基本不变的情况下,设备分辨率和逻辑分辨率的是整数倍的缩放关系,但是在plus系列中,虽然开发的时候我们使用@3倍关系做设计开发,但是实际上他们之间是没有@3倍关系的,实际的缩放应该是@2.6倍,那为什么苹果不按照规范来呢,这个我也不知道,但是可以分析一下如果苹果严格按照@3倍来应该是怎样的。
可能因为Android的开源属性和终端太乱太杂,让安卓不能像iOS那样对于不同的设备在系统级别设置逻辑分辨率来方便开发者开发,但是Android也有很好的解决方案就是使用pd作为逻辑分辨率,从pd定义可知(幕像素点密度为160ppi时1px长度),pd是个固定的物理大小单位。因此如果以pd计算dpi的话,那dpi在不同设备上应该是一样的160dpi,和iOS以dpi≈164基本差不多,所以在Android、iOS设计开发的时候才会把他们两等同。
android图