Android 单套drawable下的屏幕自适应
自适应问题。一个公式 px=dip*(density/160);
(density/160)为0.75,1,1.5等。在Android系统中对应 DisplayMetrics.density在一固定的手机上它是一个常数。有了这个常数用dip做单位在不同手机上就有不同的px了。这就是缩放原理。
drawable-hdpi、drawable-mdpi、drawable-ldpi中的图片是自动选择的。但是如果对应的文件夹下没有所需的图片它会在其他两个文件夹下寻找,找到了按density缩放。
元素坐标:
图片坐标,和触屏事件坐标。 都用相对坐标。
自适应原则:图片缩放自适应,位置用相对位置(单位也用dip)。
所有的机型宽都是相等的dip数,高不一定是相等的dip数。
240x320 density=120 320dipx426.6dip
320x480 density=160 320dipx480dip
480x800 density=240 320dipx533.3dip
480x854 density=240 320dipx569.33dip
dip=px*160/density
美工的设计图片都是按480*800分辨率设计的
那么density应该是240
那么依据图片的分辨率可以计算出dip,而dip就是屏幕的物理尺寸
所以定义好dip后,基本上自适应无问题了
对于我们现在只做单套皮肤来讲,在做布局的时候不能用wrap_content
大多数界面直接定义dip,避免图片在不同分辨率下失真
一张图片用DPI来表示的话在不同的设备上显示的话效果是一样的,可以理解为一张固定长宽像素的图片在不同密度的设备上用不同数目的点来显示。比方一张图片的分辨率是100x200像素,根据不同的设备dpi换算成相应的dp值,显示在不同设备的显示效果是一样的。
分辨率
是度量位图图像内数据量多少的一个参数。通常表示
成每英寸像素(Pixel per inch, ppi)和每英寸点(Dot per inch, dpi)
。
包含的数据越多,图形文件的长度就越大,也能表现更丰富的细节
。但更大的文件需要耗用更多的计算机资源,更多的 内存
,更大的 硬盘
空间等。假如图像包含的数据不够充分( 图形分辨率
较低),就会显得相当粗糙,特别是把图像放大为一个较大尺寸观看的时候。所以在图片创建期间,我们必须根据图像最终的用途决定正确的分辨率。这里的技巧是要保证图像包含足够多的数据,能满足最终输出的需要。同时要适量,尽量少占用一些计算机的资源。
通常,
“分辨率”被表示成每一个方向上的像素数量,比如640X480等。某些情况下也可以同时表示成“每英寸像素”(ppi)以及图形的长度和宽度。比如72ppi,和8X6英寸
。
ppi
1280 1024分辨率
和dpi经常都会出现混用现象。从技术角度说,“像素”(P)只存在于计算机显示领域,而“点”(d)只出现于打印或印刷领域。
分辨率和图像的像素有直接关系
。
我们来算一算,一张分辨率为640 x 480的图片,那它的分辨率就达到了307200像素,也就是我们常说的30万像素
,而一张分辨率为1600 x 1200的图片,它的像素就是200万。这样,我们就知道,
分辨率的两个数字表示的是图片在长和宽上占的点数的单位
。一张数码图片的长宽比通常是4:3。 LCD液晶显示器
和传统的 CRT显示器
,分辨率都是重要的参数之一。传统CRT显示器所支持的分辨率较有弹性,而
LCD的像素间距已经固定
,所以支持的显示模式不像CRT那么多。LCD的最佳分辨率,也叫最大分辨率,在该分辨率下,液晶显示器才能显现最佳影像。
目前15英寸LCD的最佳分辨率为1024×768,17~19英寸的最佳分辨率通常为1280×1024,更大尺寸拥有更大的最佳分辨率。
WVGA:800*480
QVGA: 320*240
VGA: 640*480
HVGA: 480*320
QVGA即"Quarter VGA"。顾名思义就是VGA的四分之一尺寸,也就是在液晶屏幕(LCD)上输出的分辨率为240×320像素
。QVGA支持屏幕旋转,可以开发出相应的程序以显示旋转90°、180°、270°屏幕位置。由HandEra公司发布,多用于手持/移动设备。
需要说
分辨率
明的是有些媒体把 QVGA屏幕当成与TFT和TFD等LCD材质相同的东西是错误的。QVGA屏幕多见于 日本的一些手机中,采用 微软Pocket PC 操作系统的智能手机屏幕也大多是320×240像素的QVGA屏幕。
所谓QVGA液晶技术,就是在液晶屏幕上输出的分辨率是240×320的液晶输出方式。这个分辨率其实和屏幕本身的大小并没有关系
。
比如说,若2.1英寸液晶显示屏幕可以显示240×320分辨率的图像,就叫做“QVGA 2.1英寸液晶显示屏”;如果3.8英寸液晶显示屏幕可以显示240×320的图像,就叫做“QVGA 3.8英寸液晶显示屏”,以上两种情况虽然具有相同的分辨率,但是由于尺寸的不同实际的视觉效果也不同,一般来说屏幕小的一个画面自然也会细腻一些。
HVGA 即VGA(640*480)的一半
,分辨率为(480*320),(3:2宽高比)
它是用于各种各样的PDA设备,首先是2002年的索尼Clie PEG - NR70,
WVGA 数码产品屏幕材质的一种,
VGA的另一种形式,比VGA分辨率高,别名 : Wide VGA, ,其分辨率为800×480像素,是扩大了VGA(640×480)的分辨率。
应用于PDA和手机等,因为很多网页的宽度都是800,所以WVGA的屏幕会更加适合于浏览网页,可以说是未来手持设备分辨率的大趋势。
DPI编辑
设备分辨率(DeviceResolution)又称输出分辨率,指的是各类输出设备每英寸上可产生的点数
,如显示器、喷墨打印机、激光打印机、绘图仪的分辨率。这种分辨率通过DPI来衡量,PC显示器的设备分辨率在60至120DPI之间,打印设备的分辨率在360至2400DPI之间。
打印机编辑
某台为360DPI,是指在用该打印机输出图像时,在每英寸打印纸上可以打印出360个表征图像输出效果的色点。打印机分辨率的这个数越大,表明图像输出的色点越小,输出的图像效果就越精细。打印机色点的大小只同打印机的硬件工艺有关,与要输出图像的分辨率无关
显示器编辑
显示装置能有效辨别的最小的示值差。显示器的分辨率为80DPI是指在显示器的有效显示范围内,显示器的显像设备可以在每英寸荧光屏上产生80个光点。举个例子来说,一台14英寸的显示器(荧光屏对角线长度为14英寸),其点距为0.28mm,那么
显示器分辨率=25.39956mm/inch÷0.28mm/Dot≈90DPI(1inch=2.539999918cm)
。
显示器出厂时一般不标出表征显示器分辨率的DPI值,
只给出点距
。我们
根据上述公式即可算出显示器的分辨率
。
根据我们算出的DPI值,进而可以推算出显示器可支持的最高显示模式。
假设该
14英寸显示器荧光屏有效显示范围的对角线长度为11.5英寸
,因显示器的水平方向和垂直方向的显示比例为4:3,故可设有效显示范围水平宽度为4x 英寸,垂直高度为3x 英寸,根据数学上的勾股定理,可得x=11.5÷5=2.3英寸。所以
有效显示范围宽度为2.3×4=9.2英寸,垂直高度为2.3×3=6.9英寸
。最高显示模式约为:800(9.2×90)×600(6.8×90),
这时是用一个点(Dot)表示一个像素(pixel)。
上面主要讲述了扫描仪、打印机和显示器的设备分辨率。
特别提醒:设备分辨率与用该设备处理的图像的分辨率是两个既有联系又有区别的概念。