关于屏幕分辨率适配的教程

来源:互联网 发布:java键盘输入字符串 编辑:程序博客网 时间:2024/04/29 14:14

这篇文章不是扫盲文,而是工具文.

关于屏幕适配,你只需要知道,能够让一个控件在不同分辨率下显示的效果一致(或者差不多) ,适配就OK了

举个栗子 一个button 在1080p分辨率下宽度占屏幕一半 那么,假如,在720p(其他)分辨率下,也是占据屏幕宽度一半(大致),就可以认为,你的屏幕适配基本OK了(个人之见))

屏幕适配的方案有很多 , 目前屏幕适配没有完美的方案,只有适用的方案(有时间有精力的话你可以学腾讯适配几百种机型的...)

我们一般适配的,只需要主流的6种:800x480、854x480、960x540、1184x720、1280x720、1920x1080(2k屏渐渐流行 加上2560x1440已经是时候了)  

ps : 友盟统计数据表明 当前主流分辨率是720p和1080p(事实上一般适配的也就是这两种)


//////////    方案1    ////////////

该方案基本原理 就是计算出每一个适配的不同分辨率下 dp值对应的px值 然后根据ui提供的尺寸(px值),直接进行设置 而不是平时那样设置dp值 从而达到适配效果

下面就开始适配吧(本人技术有限,不足之处还请指出来,我会更正的)

步骤1:

复制下面的values包到/res目录下(根据需求即可 其他不要的分辨率可以直接删除)

解释:不同的values包,里面的dimen值,对应的是根据不同分辨率的dp值计算出的px值 (如果听不懂,没事,做了之后去探索吧)



步骤2:

在布局中,根据ui提供的图片和尺寸,对控件直接进行设置 例如



步骤3:

运行,在不同的分辨率下查看效果,效果一致(差不多),就说明适配成功了.如果不行,我不知道了...

一开始我使用自己的华为荣耀6,测试不行,搞了好久才发现是自己的手机有毒,所以,请各位测试的时候用多几部不同分辨率的手机(模拟器是不错的选择,但是还是需要真机作为标准),我使用的有魅族4Pro(2k屏的)+小米4(1080p)+720p的模拟器


ps:这个适配 适合于美工直接提供图和尺寸的  包括字体大小的设置 直接给dimen的x值即可(我使用模拟器4种分辨率测试没发现问题)  假如是动态设置大小的  可以使用dp/px互转 工具网上搜就有,其他情况,我就不大清楚了......

还有 感谢QQ群的 武汉-代码怪上传的文件和建议;深圳-小余提供的建议 感谢辛苦计算dp->px值的那位程序员的无私分享


资源下载:

csdn老上传不了,也不提示哪里出问题,这个网站当年做得很好,现在已经只能呵呵了,下面的是百度云的

http://pan.baidu.com/s/1qY0DsIw

11月30日修复csdn的上传资源

http://download.csdn.net/detail/yan_startwith2015/9697885

这个是需要1个积分,如果你分数觉得充裕的话(csdn不允许上传相同资源的, 因此删除了某几个分辨率,不影响使用, 放心)...

http://download.csdn.net/detail/yan_startwith2015/9697902


更新 更新 更新!!!(11月4日)

//////////////    方案2    ////////////////

关于上面的方案1, 上传到群里面, 发现不少人说上面的适配方案比较麻烦, 跟一个群友(成都,dieyoung)聊了一下,发现他采取的适配方案也挺好的(我之前的同事也在使用,跟我说过,只是我不怎么记得了...)

步骤

1.其实很简单 跟上面一样的 ui切图的话 尺寸还是按照px给出的 使用方式就是:px值/2=一个值, 这个值=dp值, 设置进去, 这样就可以达到适配的效果了 当然 没有完美的适配方案(至少目前) 因此 还是需要进行一些调整的 比如 这个适配方案参考的是ios的规范切出一套图给你 ios里面最小尺寸是20px 但是安卓建议最小尺寸是12dp 这个时候 就需要适当地将尺寸设置大一点了 还有一些图标之类 可能也需要根据效果进行一些调试 

ps: 这个方案我没有进行测试过 但是是可行的 后面我又问过了之前的同事确认了...(说是简单了,,,但是我觉得跟我上面的差不多,看个人选择了)


结语:

屏幕适配的方案有很多 看自己的意愿+业务需求来进行选择吧 祝君好运



0 0