多语言展示
当前在线:932今日阅读:126今日分享:42

Android学习:[8]像素分辨率、dp、sp、pt、px等

安卓的度量单位有点多啊。想在电脑上、手机上等搞界面设计,不搞清楚像素、分辨率等概念怎么能行。该经验也是我边学边写的,从网上查阅很多资料,如果有错误麻烦指出,谢谢。而且我本身是做LINUX C开发的,对界面这块确实也非专家,说的都是浅显的东西。
一.像素
1

一张干净的白纸,一杆黑笔。用笔在白纸上画点。点越多越密集。这每一个点,就是像素。当点的数目达到一定个数的时候,就成了一幅画。其实所有的画面都是由一个个的小点组成的,这一个个的小点就称之为像素。像素是分辨率的单位。

2

所以,当别人问一块屏幕的像素的时候,就是在问这块屏幕上共有多少个点。

二.分辨率
1

分辨率用到的地方就多了。比如:一张图片,电脑的显示屏、手机屏幕、摄像头等等。分辨率可以分为2种:显示分辨率和图像分辨率。那么在这里先提出一个问题:电脑的显示屏是用来显示东西的,比如一张图片。要知道,显示屏本身是有分辨率这么一个概念的,而图片本身也有分辨率的概念。那么问题就来了,当图片分辨率大于显示屏的分辨率,该如何显示呢?

2

显示分辨率:就是屏幕分辨率,比如电视的显示屏、手机的屏幕等。也就是说,这块显示器能显示多少个像素。

3

例如:800×600的分辨率,是指在整个屏幕上水平显示800个像素,垂直显示600个像素。每个显示器都有自己的最高分辨率,并且可以兼容其它较低的显示分辨率,所以一个显示器可以用多种不同的分辨率显示。比如小编自己的电脑:最大可以显示1366*768,最低可以显示800*600。

4

所以,对一块显示屏而言,有2个非常重要的属性:1)屏幕尺寸;2)分辨率;对于屏幕尺寸固定的情况下,分辨率越高,显示的越清楚;对于分辨率固定的情况下,屏幕尺寸越小越清楚。

5

综上所述,屏幕分辨率(显示分辨率)的描述,一般是:“水平像素数×垂直像素数”,。比如:800*600像素。就是横向有800像素,竖向有600像素。当然,还有一种说法,比如:4:3、16:9等,就是宽和高的比例。

6

再看图像分辨率:是指图像本身存储的像素点个数。图像分辨率的表达方式也为“水平像素数×垂直像素数”。但有些时候也叫作图像尺寸,比如电脑上的图片,右键点击,在属性里面可以看到尺寸大小。其实就是分辨率。

7

然后回到开始的问题。如果一张图片的分辨率比显示屏的分辨率大怎么办?如果把图片原尺寸显示,会发现显示器只能显示该图片的一部分,需要鼠标拖动才能看到图片其他的部分。这也就解释了,为什么把电脑的分辨率调低,桌面图片会变大的原因。因为将屏幕的分辨率调低,屏幕能显示的像素就少了,那么桌面图标所占用的空间也就大了。

8

一般描述分辨率的单位,常用的有:dpi(点每英寸,打印分辨率),ppi(像素每英寸,图像的采样率)。这里再说一个像素密度的概念:即每英寸屏幕所拥有的像素数,像素密度越大,显示画面细节就越丰富。这个概念下面会用到

三.android 度量单位
1

做界面设计,必须考虑一些单位。比如以前,用像素为单位进行界面设计。然而发现,如果一张图片在DPI(之前说啦,是点每英寸的意思)更高的显示器上,则图片或者界面会很小(因为每英寸的像素很多,导致图片会占用更小的空间)。

2

DP(也就是DIP):设备独立像素不同设备有不同的显示效果,这个和设备硬件有关,不依赖像素。如果是160DPI的屏幕,1DP=1SP=1PX。但如果屏幕密度变大,那么以PX为单位的视图会变小,而以DP为单位的视图则看起来和以前一样,因为DP和密度无关,是长度单位。

3

PX:像素。对应屏幕上的实际像素。所以,如果使用这种单位,那么在不同的屏幕尺寸的设备上可能无法正确呈现。

4

SP:与dp类似,但是可以根据用户的字体大小首选项进行缩放。与比例无关的像素。尽量使用dp作为空间大小单位,sp作为和文字相关大小单位

5

pt:屏幕物理长度单位, 表示一个点,是屏幕的物理尺寸。大小为1英寸的1/72。

6

额,我就学了那么多,不打算深入学习了,如果有有错误麻烦指正,谢谢!

推荐信息