android开发中用到的px、dp、sp
来源:互联网 发布:中国软件行业协会会费 编辑:程序博客网 时间:2024/06/03 03:27
px : pixels(像素),对应屏幕上的实际像素点。
dip :device independent pixels,与密度无关的像素,基于屏幕密度的抽象单位。在每英寸160点的显示器上,
1dp = 1px ,即1 :1关系。(dp 就是 dip)
sp : scaled pixels(放大像素).与密度和字体缩放度无关的像素。 主要用于字体显示best for textsize。由于android设备屏幕杂乱,各种花样宽度和高度多的不行,加上各种山寨。当开发出一套layout后,痛苦的事情来了,屏幕适配。
如何保证layout在不同分辨率的屏幕下都能正常显示呢?下面我们来简单的分析一下android中一些常用的单位。
px(像素)是UI设计师在PS中切图时使用的单位,手机屏幕中也同样有该显示单位。
dp是android中开发layout时使用的尺寸单位。
sp是开发layout时关于字体的字号单位,在设置字体单位为sp时,字体可随屏幕尺寸而自动拉伸适应。
Android支持五种不同的dpi模式:ldpi、 mdpi、 hdpi、 xhdpi、 xxhdpi
一般地,手机分辨率与所运行的dpi模式是匹配的,也就是会根据屏幕的尺寸加载Res下不同的dpi文件夹。
例如 HVGA(320x480像素)的手机屏幕一般在3.5英寸左右,运行在mdpi模式下(也有奇葩机子例外)
(这个是ROM控制的,app不能改变)。当运行在mdpi下时,1dp=1px:也就是说设计师在PS里定义一个item高48px,开发时就会定义该item高48dp;Photoshop中14px大的字体,开发时会定义为14sp。
对于一部WVGA(480x800)手机,一般是运行在hdpi模式下。当运行在hdpi模式下时,
1dp=1.5px:也就是说设计师在PS里定义一个item高72px,开发时就会定义该item高 48dp;
Photoshop中21px大的字体,开发会定义为14sp。
所以,当你的app需要适配多个dpi模式的时候(例如同时适配mdpi与hdpi),若你在WVGA下做设计(或者更高),你需要将各数值都为3的倍数,
并在切图标注时将所有的数字( /3*2) 换算成dp,这样开发的同一套layout就能用在两个不同的dpi模式下,而不是写两套layout。
其中的比例:
mdpi与hdpi是2:3的关系
mdpi与 xhdpi是1:2的关系
ldpi与mdpi是3:4的关系
比如我的机子红米,720 * 1280 的屏幕尺寸,就是运行在xhdpi下的。
一种例外,有些比较山寨的Pad有可能是7英寸屏幕,分辨率为WVGA(480*800)运行在mdpi下。
- android开发中用到的px、dp、sp
- android开发中用到的px、dp、sp
- android开发中用到的px、dp、sp
- Android开发中用到的长度单位(dp、sp、px、in、pt、mm等)解释与换算
- android中用到的dip、dp、px、sp和屏幕密度
- android 的dp sp px
- Android的sp,dp,px
- Android开发基础知识-关于px,dp,dip,sp的不同之处
- Android开发,dp、sp和px之间的关系
- Android开发中dp,sp和px之间的转换
- Android开发之px、dp、dip、sp
- android开发中px,dip,dp,sp,dpi的区别,以及dp与px换算公式.
- android dp,sp,px
- Android的px、dp、sp的区别
- android dp dip px sp的区别
- (转)android px dp sp 的区别
- dp、sp和px的区别【Android】
- Android的px、dp和sp
- c++基础知识点总结一
- House Robber III
- 洛谷 3128 树上差分
- 161003
- 完整的AJAX的GET请求--
- android开发中用到的px、dp、sp
- 数据结构实验之栈三:后缀式求值
- JQ 的animate动画详解
- 47.HTTP代理(转发代理&反向代理)与重定向
- 执行安装软件命令提示apt-get -f install的解决方法
- 项目心得之--响应式布局
- Spring事务属性
- 【english】it is a new begin
- 2016年10月4日08:17:29