再议屏幕适配
之前对屏幕分辨率和像素的只是做过讨论,可见文章:http://blog.csdn.net/carter_yu/article/details/50421787
一、Android中的屏幕知识
像素:(px)每张图片都是由色点组成的,每个色点就是一个像素,像素的大小是可以变化的,所以也成为“相对长度”;相机所说的像素,实指最大像素数,如200万 = 1600 * 1200 ,像素是由相机里的光电传感器上的光敏元件数目所决定的,一个光敏元件就对应一个像素。因此像素越大,意味着光敏元件越多,相应的成本就越大。
屏幕分辨率:就是屏幕每行的像素点数*每列的像素点数;手机的分辨率在出厂时就是已经确定好的,不可改变。
图像分辨率:每英寸图像内的像素点数。图像分辨率是有单位的,叫像素每单位(px/in);
屏幕大小:只屏幕对角线的物理长度,不可改变,用英寸(in)表示;
屏幕像素密度:(ppi)是指屏幕对角线上每英寸的像素数量;正常距离下,PPI高于300时,人眼已经无法辨别像素点。
二、实例介绍(已荣耀7为例)
在上图可以看出,荣耀7的屏幕分辨率是1920*1080,就是说手机横屏上有1920个像素点,竖屏有1080个像素点;
屏幕尺寸5.2寸(英寸),就是对角线的长度为5.2英寸,1英寸 = 2.54cm,所以对角线长度是13.2厘米。
屏幕像素密度424ppi,是说对角线上每英寸存在的像素数为424,可以根据下列公式计算,对角线像素数约为2202,对角线长度为5.2英寸,故每英寸的像素数约为424。
屏幕分辨率和屏幕尺寸没有关系。每英寸像素数(PPI)是两者共同决定的,PPI越高,屏幕越清晰。所以我们可以得出:并不是分辨率越高,屏幕越清晰,合适的屏幕分辨率搭配合适的尺寸,才能达到高质量的屏幕质量。
三、关于像素大小
像素的大小是不固定的,但是,一台电子设备,出厂后的屏幕分辨率和像素的物理大小就是确定的了。
为什么电脑可以调节屏幕分辨率?
电脑的实际分辨率就是最大分辨率,而调节到较小分辨率时,实际是通过填充一些模拟色块,将屏幕分辨率凑到硬件的实际分辨率。
四、开发人员适配
Android中会有dp(dip)、px、dpi、density。
dip:就是dp,设备无关像素;
px:像素,不过多介绍;
dpi:dots per inch ,每英寸的像素点数,也叫像素密度(px/inch);
density:密度,density = 实际dpi/标准dpi,即 实际dpi /160;
根据定义,当dpi为160时,dp等于px,我们得1dp = 160*1inch;
又有dpi定义得:1px = 1dpi*1inch;==>1px = 1dpi*(1dp/160) = (1dpi/160)*1dp;
所以,dp和px的换算公式为:
1dp = px/(Dpi/160) = (px*160)/Dpi = px / 密度;
1px = dp * (Dpi/160) = dp * 密度;
总结,
120dpi(ldpi低密度屏) 1dp = 0.75px ( 标准: 320*240)(由于像素点是物理点,所以用2个像素点来显示3个dp的内容)
160dpi(mdpi中密度屏) 1dp = 1px ( 标准: 480*320)
213dpi(tvdpi电视密度屏) 1dp = 1.33px
240dpi(hdpi高密度屏) 1dp = 1.5px( 标准: 800*480)
320dpi(xhdpi极高密度屏) 1dp = 2px( 标准: 600*124)
图片适配
按照中密度屏给出UI,然后进行放在不同dpi的图片文件夹中;
尺寸适配
在不同dpi的values文件中,按照公式进行换算。
更多相关文章
- Android(安卓)Web App官方文档翻译第二章:屏幕适配
- android屏幕分类与屏幕相关参数定义
- Android(安卓)laucher总结
- android 关于屏幕的设置(FullScreen、notitle)等等
- Android获取屏幕大小和设置无标题【安卓进化二十一】
- Android(安卓)ORC文字识别之识别身份证号等(附源码)
- Android横竖屏切换及其对应布局加载问题
- UI设计基础知识点之Android设计规范篇
- Android系统应用程序基本概念解读