首页 / ANDROID / Android 屏幕适配
Android 屏幕适配
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Android 屏幕适配,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1500字,纯文字阅读大概需要3分钟。
内容图文
![Android 屏幕适配](/upload/InfoBanner/zyjiaocheng/1322/71ee1a47d6e64722b71f261ab6298c52.jpg)
参考:
- Android 屏幕适配方案
- Android 百分比布局库(percent-support-lib) 解析与扩展
- Android 增强版百分比布局库 为了适配而扩展
- Android AutoLayout全新的适配方式 堪称适配终结者
- 开源,安卓自动缩放布局,解决屏幕适配问题
设计师给了px单位的标注,Android开发到底要设置多少dip,dp,sp
名称 | 分辨率 | 屏幕密度 |
QVGA | 320*240 | 120 |
WQVGA400 | 400*240 | 120 |
WQVGA432 | 432*240 | 120 |
HVGA | 640*480 | 160 |
WSVGA | 1024*600 | 160 |
WXGA800 | 1280*800 | 160 |
WVGA800 | 800*480 | 240 |
WVGA854 | 854*480 | 240 |
WXGA720 | 1280*720 | 320 |
例如:
选择GalaxyNexus作为开发的目标机型。
该机型的屏幕尺寸是720x1280。设计师在720x1280的画布上进行设计。
根据计算公式(px = (density / 160) dp),得知Galaxy Nexus上面,1dip=1dp=1sp=2px。所以对于40px的标注,开发需要给出20dip设置即可。
注意:density值表示每英寸有多少个显示点(*)
屏幕适配方法:
(1) 第一种思路:
一种思路,就是在aplication里初始化一下美工出的图的比例 比如 1280X720 然后按照比例 每个activity里先获取到root view,然后递归运算子view缩放的。
(2) 第二种思路:
我的适配方法,直接根据美工的设计图来算就可以,如果1080p的设计图,把标注px除以3即为dp值,如果是720p设计图就除以2就行了,ps这里的3和2就是Density。就是这么简单,基本没有适配问题。
注意:density值表示每英寸有多少个显示点(*)
(3) 对于如果有些机型的分辨率在value文件夹没有找到正好匹配的问题。
根据android设配匹配规则,没有匹配,就会使用默认的value文件夹下的。
例如:我们以1280x720的机型做为基准机,以屏幕的宽度为例,分为720份,也就是x1=1px. 我们可以在value文件夹中配置x1=0.5dp (因为1280x720的机子dpi大都在240dpi-320dpi之间,也就是1dp=2px)。
这时, 如果真的有比较奇葩的分辨率匹配不上,以Ipone-5为例1134x640,那现在没有匹配上。
比如有个button,我们给了高度x50。那么他本来显示的高度是多少呢? 根据楼主的计算方式: 1134/1280*50=44px.
那么以android的计算规则,ipone-5的dpi是多少呢(首先明确一点,android的dpi之前按照区间进行取值,也就说就是个相对值)? =341像素/英寸 。 那他的density也会取2. 也就是说1dp=2px.。
那之后的流程就是,没有匹配上,找到默认的文件夹x50,发现文件夹中的值为25dp. 进行dp和px的转换后显示(25x2=50),也就是显示50px. (ˇ?ˇ) 差4px. 左右。
我能说这个和我们使用dp进行适配的误差其实是一样的吗!!!
所以解决方案就是:可以使用选择主流分辨率,设置dp为单位的默认value文件,如果分辨率没有匹配时显示有误差,其实这个问题也不是啥大问题。。
原文:http://www.cnblogs.com/CharlesGrant/p/4991146.html
内容总结
以上是互联网集市为您收集整理的Android 屏幕适配全部内容,希望文章能够帮你解决Android 屏幕适配所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。