问题:
测试时,发现应用在不同的显示器上显示效果不同(部分文本不能显示完全),自然想到屏幕适配的问题。
按照思路整理如下:
(一) 几个概念
1,Screen size屏幕的尺寸,即对角线长度(单位inch-英寸)
2, Screen density屏幕密度,即单位长度像素点数(pots/inches)
3, Resolution 分辨率,即屏幕的总像素点数(width * height)
4, Density-independent pixel (dp)独立像素密度。标准是160dip.即1dp对应1个pixel,计算公式如:px = dp * (dpi / 160),屏幕密度越大,1dp对应 的像素点越多。
(二) 屏幕的分类(size & density)
1, 以总像素数分,文本的size等都要改,如下图所示
每一个分类都有其最小分辨率,如下,可根据分辨率划分种类:
2, 以屏幕密度分,提供不同的图片如下图所示
Note1:匹配以上面两种为参考。
Note2:还有专为水平(landscape)和竖直(portrait)两种,使用的少,在此不赘述。
(三) Android寻找最佳资源原理
1, 排除与设备设置不符合的资源
2, 根据限定词(qualifier)的优先级,按照顺序查找
3, 在限定词下,是否存在资源路径
4, 排除不包含在限定词中的资源路径
5, 继续执行不同的限定词查找,直到找到相应的资源
如下图所示:
(四) 项目步骤:
1, manufest中配置
- <supports-screens
- android:anyDensity="true"
- android:largeScreens="true"
- android:normalScreens="true"
- android:smallScreens="true"
- android:xlargeScreens="true"/>
2, 新建对应的资源文件夹
A, Layout
例如,我现在有三个显示器分辨率:
分别为1280*720,1024*768,1200*690
根据以上最低分辨率的要求,分为xlarge和large两类,新建两个文件夹,如下:
如下图所示:
B, Drawable
如下图所示:
在drawable中,以mdpi为标准(即160dpi)。比例保持为3:4:5:6,如下图所示:
相关推荐
最专业的Android多屏幕适配及样式-设计开发指导书
Android多屏幕适配介绍 800x450
Android多屏幕适配.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
Android屏幕适配Android屏幕适配Android屏幕适配Android屏幕适配Android屏幕适配
讲述Android多屏幕适配策略代码,详细列举了支持多屏幕适配的例子。
android屏幕适配方案,做到了全适配
A low-cost Android screen adaptation solution (今日头条屏幕适配方案终极版,一个极低成本的 Android 屏幕适配方案)
A low-cost Android screen adaptation solution (今日头条屏幕适配方案终极版,一个极低成本的 Android 屏幕适配方案). Overview Pixel 2 XL | 1440 x 2880 | 560dpi: Pixel XL | 1440 x 2560 | 560dpi: ...
android_px_多屏幕适配生成工具和资源android_px_多屏幕适配生成工具和资源android_px_多屏幕适配生成工具和资源android_px_多屏幕适配生成工具和资源
android屏幕适配方法
Android开发之屏幕适配values资源,直接复制到res文件夹下,引用即可实现屏幕适配
android屏幕适配 ,生成values-1280x720,values-1920x1080等的工具
Android屏幕适配生成文件
这是一篇关于Android屏幕适配的介绍
Android 智能屏幕适配工具,便捷有效
Android autolayout 屏幕适配,测试工程中含有Fragement,listview,gridview,万能适配
Android大屏幕适配demo,这个是仿照郭林文章中的例子,他的例子是用eclipse写的,直接运行会不兼容最新的sdk,我改成了AndroidStudio可以直接运行的demo.郭林此代码文章的连接 ...
Android屏幕适配:dimens自动生成工具以及使用方法,亲测好用,需要通过多套dimens做android屏幕适配的同学可以下载了,里面包括使用方法,方便易懂
针对Android屏幕适配所整合的几种常用方案