您的位置:首页 > 移动开发 > Android开发

Android屏幕适配基础

2015-08-25 10:58 302 查看
屏幕相关分辨率DPI, PPI

DPI表示分辨率,指每英寸长度上的点数。DPI又可细分为水平分辨率和垂直分辨率,例如一张1英寸*1英寸的图片,如果它的水平分辨率是100
dpi,垂直分辨率是50 dpi,那么就是说,它水平每英寸分成100小段,垂直每英寸分成50小段,就像米尺上的一格格那样.这张图总共有100*50=5000个格子,这张图片共有5000像素.由于它的水平分辨率和垂直分辨率不相等,所以每个像素是一个微小的长方形。
所以像素实际上是一个面积的概念,而因为一般电脑/数码相机等生产出来的图片都是水平分辨率和垂直分辨率相等,每个像素是个微小的正方形,所以就讲成"DPI表示每英寸长度上的像数数目",其实就是"每英寸长度上的点数"了.

每个像素的面积大小由生产工艺决定,工艺越高,每个像素面积越小,每平方英寸屏幕上就能容纳更多的像素,dpi值就越高,图像就越精细,像素小到人眼分辨不出的地步了,图像看起来就跟实际的没有分别了. 

数码相机的"多少多少万像素"的概念就是这样来的,比如说,一个相机最大可以拍出1600像素*1200像素的相片,它的像素值就是1600*1200=192万,约等于200万,这就是一台200万像素的数码相机了.

于是问题中所讲的300 dpi就表示屏幕上水平和垂直的方向上每英寸的长度上都有300个点.这台机屏幕的实际高度要用像素数目和dpi结合起来算才能得出.对于这台机子,400像素就是400/300=1.33英寸,533像素就是533/300=1.78英寸.

对于一张电脑照片,你可以在photoshop的“图像”--“图像大小”菜单那里改它的分辨率,默认是72,改小了就是缩小图片,改大了就是放大图片(图像质量有损失),其实就是放大缩小的效果而已,要说真正的影响,就是对一些要求分辨率高的图像打印输出场合的影响。你可以打开“文件”--“打印选项”菜单查看打印预览。

(附:1 inch 英寸=25.4 millimetres 毫米)
http://zhidao.baidu.com/question/6994646.html

PPI与DPI是什么意思?它们有什么不同 
PPI(Pixel Per Inch)是图像分辨率所使用的单位,意思是:在图像中每英寸所表达的像素数目。从输出设备(如打印机)的角度来说,图像的分辨率越高,所打印出来的图像也就越细致与精密。
DPI(Dot Per Inch)是打印分辨率使用的单位,意思是:每英寸所表达的打印点数。

打印机分辨率(DPI)
打印机的分辨率是指打印机在每英寸所能打印的点数(Dot Per Inch)即打印精度(DPI),这是衡量打印质量的一个重要标准,也是一个判断打印机分辨率的基本指标。一般的家庭用户和中小型办公用户使用的打印机的分辨率应至少达到300DPI——720DPI之间,但DPI指标不是越大越好。
打印机的打印尺寸与图像分辨率有很大的关系,只要图像分辨率改变了,打印的尺寸便会跟着发生改变。换言之,打印的尺寸无法客观地描述图像的大小。想要描述图像的大小,最好的方法还是以该图像的"宽×高"的像素值加以表示,例如:360×720 Pixels。而相乘的最后结果就是该图像的像素多寡。打印尺寸、图像大小与分辨率之间的关系可以利用下列的计算公式加以表示:图像的大小=图像的分辨率×打印的尺寸,图像的大小/图像的分辨率=打印的尺寸。针对特定的图像而言,图像的大小是固定的,所以,分辨率和打印尺寸便呈现反比的关系。

数码相机分辨率(PPI) 
数码相机的分辨率通常指的是感光设备(一般是CCD,电荷耦合器件)有效的图像获取像素值,只要拥有足够的像素值,在完成照相之后,便可以借助图像分辨率的调整,得出够成像质量较好的成品,因此,数码相机的分辨率通常用像素的多少来代表。同样地,数码相机的分辨率也无法保证图像的品质,就现在的3百万像素等级的数码相机来看,各品牌之间的CCD大小分辨率大小、镜头质量、聚焦功能……都不尽相同,因此,即使都是3百万像素的数码相机,所得到的图像也有所差距。从整体上说,目前所设计的相机性能都较为优越,图像解析力较好,成像效果也较好,剩下的品质往往取决于使用者的技术问题了。和扫描仪非常类似的是,数码相机也有所谓的"软件插值分辨率",因此,要分辨数码相机真实的分辨率时,首先要看CCD的分辨率,再来看拍摄成品的相机分辨率。如果CCD和相机分辨率不同,那肯定是使用软件插值得出的成果。另外,对于数码相机而言,其光学镜头的解析能力一定要优于感光CCD的分辨率,而CCD的获取像素值,一定要大于最后的有效图像分辨率。


关于android的单位dp,dip

摘要

          本文介绍了android单位dp,dip的概念,并给出了它的确切含义。

概述

          Android中,dp是Density-independent Pixels简写,而dip则是Density Independent Pixels,实际上指的是一个概念,都是Android的单位。在文档More
Resource Types中有描述:

dp

        Density-independent Pixels - An abstract unit that is based on the physical density of the screen. These units are relative to a 160 dpi (dots per inch) screen, on which 1dp is roughly equal to 1px. When running on a higher density screen, the number
of pixels used to draw 1dp is scaled up by a factor appropriate for the screen's dpi. Likewise, when on a lower density screen, the number of pixels used for 1dp is scaled down. The ratio of dp-to-pixel will change with the screen density, but not necessarily
in direct proportion. Using dp units (instead of px units) is a simple solution to making the view dimensions in your layout resize properly for different screen densities. In other words, it provides consistency for the real-world sizes of your UI elements
across different devices.

         单位px代表的是像素,它和ds的转换公式在文档Supporting Multiple Screens中也有描述:

Density-independent pixel (dp)

        A virtual pixel unit that you should use when defining UI layout, to express layout dimensions or position in a density-independent way.

        The density-independent pixel is equivalent to one physical pixel on a 160 dpi screen, which is the baseline density assumed by the system for a "medium" density screen. At runtime, the system transparently handles any scaling of the dp units, as necessary,
based on the actual density of the screen in use. The conversion of dp units to screen pixels is simple: px = dp * (dpi / 160). For example, on a 240 dpi screen, 1 dp equals 1.5 physical pixels. You should always use dp units when defining your application's
UI, to ensure proper display of your UI on screens with different densities.
        公式

px = dp * (dpi / 160)  

        说明1dp代表了多少个px,下面我们简单的推导一下这个公式。

        首先,dpi是Dots Per Inch的缩写(wiki),表示一英寸内有多少个点,对于UI界面而言,这个点就是像素(Pixel)。

        然后,我们看一下dp的单位:

像素 = dp的单位 * 像素/英寸  

        可以看出dp的单位是长度单位英寸,上面dp的定义的最后一句话说明了这一点:In other words, it provides consistency for the real-world sizes of your UI elements across different devices.

        最后,我们看一下1dp的值有多大。1dp对应dpi/160个像素,根据dpi的定义,每个像素的长度为1/dpi英寸,合在一起就是1dp=1/160英寸。

1dp的长度 = 1 * dpi / 160 * 1 / dpi 英寸 = 1 / 160 英寸  

结论

        dp等同于dip,它是一个长度单位,1dp=1/160英寸。

        dp这个单位的意义在于:你可以根据看到的实际大小,在应用中设置对应的dp值,而使得不同的设备上看起来一样大。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: