dp和px,那些不得不吐槽的故事——Android平台图片文字元素单位浅析
来源:互联网 发布:域名注册通专业版破解 编辑:程序博客网 时间:2024/05/22 03:33
原文链接:http://blog.sina.com.cn/s/blog_6499f8f101014ipq.html(请直接跳转到原文)
一个优秀的手机软件,不仅要有精巧的功能,流畅的速度,让人赏心悦目的UI也往往是用户选择的重要理由。作为移动产品的PM,也需要了解一些在UI设计中的基本知识。
1. px和pt,一对好伙伴
在视觉设计中,我们经常会见到以下两个单位: px和磅数pt。
Px ,是英文单词pixel的缩写,意为像素。在设计领域中,像素是用来计算数码影像的一种单位。计算机中显示的图像并非连续的线条组成,而是由许多肉眼看不见的小点组成。如果把把影像放大数倍,会发现这些连续色调其实是由许多色彩相近的小点所组成,这些小点就是构成影像的最小单位“像素”。由于是最小的独立显示单位,px均为整数,不会出现0.5px的情况。
图一 看这个色彩鲜艳的LED灯(原图大小)
图二 你能想象这才是他的本来面目吗?(放大之后)
Pt,则是point的缩写,一般音译为磅数,也有人直译为点数,请大家自行转换。这是使用在印刷领域的单位,一磅等于1/72英寸。在国际上一般会用pt作为字体的单位。
一般情况下,设计师们采用px来进行标注设计图中的图形,用pt来标注文字。在过去很多年的视觉设计中,px和pt的配合堪称天衣无缝,把PC打扮得花枝招展,堪称史上最佳配合的好伙伴。
为了更好的描述这种多样化引发的问题,我们需要引入一个新的概念density,也就是密度。它指的是在一定尺寸的物理屏幕上显示像素的数量,一般使用dpi(dots per inch,每英寸像素数)作为单位。比如一台分辨率为240x320,屏幕物理尺寸为1.5英寸x2英寸的手机,他的密度可以用分辨率/尺寸,240/1.5或者320/2,密度为160dpi。对于用户来说,密度越大的屏幕显示效果越精细,因为每英寸显示的像素数量更多。
如果是要使用px和pt给程序贴图,假设生成了一条240px的直线,在240*320的屏幕上刚好可以铺满,而放到480x800的分辨率下才刚刚到一半的位置。
如果要解决这样的问题,那么程序在实现的时候就必须为每个分辨率都写一个配置,否则就会出现图形在低密度的屏幕上显示的更大,而在高密度的屏幕上显示的更小。最麻烦的事情在于,一旦出现新的分辨率,所有程序都没办法直接运行了。这明显不符合手机快速发展的客观规律。
....
为了解决这个问题,Google为Android引入了一套新的单位dp和sp。
首先登场的是dp,Density Independent Pixel,可以翻译为密度无关像素。和px相比,dp在不同密度的屏幕中实际显示比例将保持一致。根据规定,一个dp相当于160dpi屏幕中的一个px。在320dpi的屏幕中,一个dp相当于2个px。通过这样的成比例放缩,Android解决了需要多个不同屏幕中的大小显示问题。
后面的就不贴了...表格、图的太麻烦了
- dp和px,那些不得不吐槽的故事——Android平台图片文字元素单位浅析
- dp和px,那些不得不吐槽的故事——Android平台图片文字元素单位浅析
- dp和px,那些不得不吐槽的故事——Android平台图片文字元素单位浅析
- 纯干货,dp和px,那些不得不吐槽的故事—Android平台图片文字元素单位浅析
- dp和px,那些不得不吐槽的故事——Android平台图
- dp和px,那些不得不吐槽的故事——Android平台图
- Android文字单位dip、dp、px、sp
- Android的px,dp和sp等单位的区别
- Android:px、dp和sp,这些单位的区别~
- android的长度单位 dp px 和sp
- Android中px,dp,sp单位的区别和应用
- Android px、dp和sp单位区别
- Android中的单位:px, dp和sp
- Android 中的长度单位——px/dp/sp
- 图片切换器+dp--->sp--->px 的单位转换器
- android中 px、dp和sp单位详解
- android px、dp和sp,这些单位有什么区别?
- 【Android Util】尺寸单位 dp 和 px 相互转换
- error_reporting
- C++第12周项目2——分段函数
- JavaScript DOM 操作
- 用户访谈 —几个细枝末节的问题
- jsp页面间的hidden
- dp和px,那些不得不吐槽的故事——Android平台图片文字元素单位浅析
- 内存池技术
- 11-16新建一个对Class表进行插入,删除,更新的功能网页。
- oracle pl/sql面试题
- linux进程查看top与ps
- could not instantiate RegionFactory [org.hibernate.cache.impl.bridge.RegionFactoryCacheProviderBridg
- FreeMaker 详解
- (LINQ 学习系列)(1)使用 LINQ to SQL 的典型步骤
- CSS3+js实现多彩炫酷旋转圆环时钟效果