热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

dippx:显示单位px和dip以及sp的区别_css

dip:deviceindependentpixels(设备独立像素).不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGAcwj推荐使用这个

dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA cwj推荐使用这个,不依赖像素。
px: pixels(像素). 不同设备显示效果相同,一般我们HVGA代表320×480像素,这个用的比较多。
pt: point,是一个标准的长度单位,1pt=1/72英寸,用于印刷业,非常简单易用;
sp: scaled pixels(放大像素). 主要用于字体显示best for textsize。
由此,根据 google 的建议,TextView 的字号最好使用 sp 做单位,而且查看
TextView
的源码可知 Android 默认使用 sp 作为字号单位。
###################################################################
关于换算(以 sp 和 pt 为例)
查看 TextView 等类的源码,可知:
case COMPLEX_UNIT_PX:
   return value;
case COMPLEX_UNIT_SP:
   return value * metrics.scaledDensity;
case COMPLEX_UNIT_PT:
   return value * metrics.xdpi * (1.0f/72);
--------------------------
scaledDensity = DENSITY_DEVICE / (float) DENSITY_DEFAULT;
xdpi = DENSITY_DEVICE;
--------------------------
DENSITY_DEFAULT = DENSITY_MEDIUM = 160;
============================================
所以: 假设 pt 和 sp 取相同的值 1,则可设 1pt 和 1sp 之间系数为 x,
1 * DENSITY_DEVICE / 72 = x * 1 * DENSITY_DEVICE / 160   =>
x = 160 / 72 = 2.2222
也就是说在 Android 中,   1pt 大概等于 2.22sp
以上供参考,如果 UI 能够以 sp 为单位提供设计是最好的,如果设计中没有 sp
的概念,则开发人员也可以通过适当的换算取近似值。

本文链接http://www.cxybl.com/html/wyzz/css/20120614/30134.html

欢迎大家阅读《dip px:显示单位px和dip以及sp的区别_css》,跪求各位点评,若觉得好的话请收藏本文,by



推荐阅读
author-avatar
黄承念63772
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有