android屏幕适配原理
来源:互联网 发布:淘宝网 无法购买 编辑:程序博客网 时间:2024/06/05 22:33
Android设备碎片化非常严重, 如图,每个小色块代表一种设备分辨率
各种分辨率的设备要想全部完美适配是不可能的,那么就可以理解,如上几个文件夹划分了一部分区间,拿过来一个机器,它的像素密度参数接近哪个就用哪个文件夹的图片
做测试:
heightPixels widthPixels density densityDpi
G35: 752 1280 1.0 160(baseLine)
G200: 723 1366 1.0 160
Huawei: 720 1280 2.0 320
比较huaWei与G200,一个是我的5英寸手机,一个是老平板,有我手机三个大,尺寸悬殊,但是分辨率却相差不大。
DensityDpi是什么:顾名思义 dpi就是dot per inch,也就是2.54厘米长度有多少个像素点
density是为了表征densityDpi的比例 系统提供的baseLine 也就是基准1是160,记为1,那么其他dpi的比例就可以计算出来了,比如320dpi的密度是320/160=2,有种120dpi的老爷机密度是120/160=0.75:
不过实际计算出来的dpi和Android系统定义的dpi之间是有区别的:
由勾股定理公式:
dpi = √(长度像素数² + 宽度像素数²) / 屏幕对角线英寸数
假如分辨率1280*700,计算dpi, 那么5英寸计算出来的是300,与displayMetrics显示的并不相同,这么多尺寸的安卓设备,这样计算出来的dpi应该也会有明显的碎片化倾向,但事实上,每部安卓手机屏幕都有一个初始的固定dpi值,这些数值固定为120、160、240、320、480,可以看作为“系统密度”。安卓对界面元素进行缩放的比例依据正是系统定义的dpi值,而不是实际计算出来的dpi。所以设备运行安卓程序寻找hdpi文件夹还是mdpi文件夹就是用的这个系统密度。
(图片来自http://blog.csdn.net/xiebudong/article/details/37040263/,单位ppi(pixels per inch)与dpi同义)
以我的华为手机为例,算出来的dpi为300,在图中最接近320dpi,那么就去xhdpi文件夹找图片,找不到,就去xxhdpi中找,找不到再往密度高的文件夹中去,如果到头了还找不到,就从hdpi中找,找不到就往下找,一直到找到为止。
- Android屏幕适配原理
- Android屏幕适配原理
- Android屏幕适配原理
- Android屏幕适配原理
- Android屏幕适配原理
- Android屏幕适配原理
- android屏幕适配原理
- Android各种屏幕适配原理
- 屏幕适配的原理
- Android 屏幕操作原理
- 【Android】屏幕适配
- android屏幕适配
- android屏幕适配
- android 屏幕适配
- Android屏幕适配
- Android屏幕适配
- Android屏幕适配
- Android屏幕适配
- Linux下Elasticsearch-2.4.1的安装与简单配置(单节点)
- Cocos2d-x是怎样实现跨平台?
- 二维数组——鞍点计算
- C语言 - 字符串与数值之间的转换
- PHP如何判断图片是否伪造
- android屏幕适配原理
- 漫谈程序员(十五)——应届毕业生上海市落户政策解读
- contiki移植开发板实验框架
- rem 小数点问题
- Java适用于嵌入式系统的十大优点
- title
- question2.Would you prefer to have classes during the day and do part-time jobs in the evening or ?
- 从零开始做远控 第四篇
- RequireJS入门简介