超级苦工
阅读 291
Android屏幕适配的总结

屏幕适配的核心:其一,就是适配的效率,即把设计图转化为App界面的过程是否高效,其二如何保证实现UI界面在不同尺寸和分辨率的手机中UI的一致性。

背景知识:

dp的优点,相同dp的控件,能够保证不同屏幕上的实际物理大小相同
缺点:
1、由于屏幕尺寸不一样,对于同样dp的控件,有的屏幕放不下,有的屏幕有留白
2、为了便于统一适配,对于某个区间内的dpi,系统会统一视为某个dpi来使用,比如几部相同分辨率不同尺寸的手机的ppi(屏幕中ppi值等于dpi)可能分别是是430,440,450,那么在Android系统中,可能dpi会全部指定为480,这样的话,dpi/160就会是一个相对固定的数值,但这样就会将实际显示尺寸和清晰度有细微差别。

根据上述缺陷,需要更优秀的屏幕适配方案
1、使用宽高限定符,即穷举市场上的手机宽高分辨率,如values-1920x1080,优点是精确,缺点也是如此,必须要精确匹配,否则只能用默认的宽高dimens;
2、使用最小宽度(或最小高度)限定符,如values-sw360dp,和前一方案原理一致,优点是容错率较高,如果不能精确匹配,系统能往下寻找最接近的资源文件,
两个方法的弊端都是会增大apk体积,dimens文件的体积增大量一般不超过1m,如果算上不同分辨率的图片资源就会增大较多
3、今日头条屏幕适配方案,如果设计稿是360dp宽度,动态设置手机的destiny使其在不同设备上始终保持宽度px/destiny = 360dp,这样就能保证不同屏幕上UI的一致性。
缺陷就是对老项目维护不友好,因为这样会把整个布局尺寸都改动,老项目可能是写死dp或按照最小宽度区分values适配的,需要做较多改动。

经验小提示

  • 限定宽度,高度用match-parent,或者采用滑动方式
  • 百分比布局、weight、ConstraintLayout都是可选工具
AndroidAutoSize 使用经验
  • jessyan是否会对三方库页面产生影响 会
  • 三方库的引用方式中本地引用是否和远程引用等效 是
  • 验证引用jessyan时候项目会不会根据屏幕尺寸选择不同的dimens 会
    核心功能,只要按照设计图写(设计图以dp为单位),然后适配,设置好高度或宽度的基准,就能适配大部分的屏幕(从基准轴根据不同屏幕比例缩放,最大程度接近设计稿效果),基本不需要多个dimens。
    公司音乐模块区分dimens的原因是hls和cat的设计稿都不一样,两个软件的基准值也不一样,所以要区分。

具体方案参考

Android 目前稳定高效的UI适配方案

今日头条屏幕适配方案

关注下面的标签,发现更多相似文章
评论
相关推荐
测试

测试...

测一测

优点:前端耗时少。因为后端拼接完了html,浏览器只需要直接渲染出来。有利于SEO(搜索引擎优化)。因为在后端有完整的html页面,所以爬虫更容易爬取获得信息,更有利于seo。无需占用客户端资源。即解...

测试

安装 socialiteproviderssocialiteproviders 为 Laravel Socialite 提供了更多的第三方登录方式,基本上你需要的,都能在这里找到。这个组件方便我们完成...

(毕设项目)Vue+Go前端后端一体化 企业级微服务网关项目完整无密云盘分享

(毕设项目)Vue+Go前端后端一体化 企业级微服务网关项目 【点击下载】不管是基于Java、Python、PHP,还是基于Go的网站,网站流量越高,对网关性能要求越高,尤其是亿级流量网站中,网关更是...

2020最新慕课网全站课程分享实战就业班全部都有云盘链接分享

*2020 慕课网所有课程全部都有,百分百高清原画,所有课程全部包含课件源码,完整无密,百度网盘链接分享,官方同步永久包更新! *官方品质,信誉保障!所有课程全部支持试看任何章节! *【点击下载】 *...

Node.js+Koa2+MySQL打造前后端分离精品项目《旧岛》完整无密 云盘分享

Node.js+Koa2+MySQL打造前后端分离精品项目《旧岛》完整无密 【点击下载】Nodejs逐渐成为前端同学进阶的必修技术之一,本课程将带大家从0到1开发一个前后端分离的精品项目《旧岛》,手把...

Learn Go in Y Minutes

转自:https://learnxinyminutes.com/docs/zh-cn/go-cn/ 发明 Go 语言是出于更好地完成工作的需要。Go 不是计算机科学的最新发展潮流,但它却提供了解决现实...

实战企业级项目 践行App重构之路

实战企业级项目 践行App重构之路 完整无密 随着企业级App功能不断累加强大,App代码质量下降、设计缺陷、难以维护、迭代困难等问题越来越突出,App的重构迭代已经成为Android工程师急需解决的...

你好,米粒

米粒小米粒小小米粒其实有时候很孤单...

大学计算机必修课新讲--编译原理+操作系统+图形学

大学计算机必修课新讲--编译原理+操作系统+图形学 无密 [【点击下载】](http://www.97yrbl.com/t-310.html)编译原理,操作系统,图形学被称为程序员的三大浪漫,不仅因为...

2020最新慕课网全站课程完整无密网盘分享

*2020 慕课网所有课程全部都有,百分百高清原画,所有课程全部包含课件源码,完整无密,百度网盘链接分享,官方同步永久包更新!*官方品质,信誉保障!所有课程全部支持试看任何章节!*下载地址:&nbsp...

asdfasdfasdf

asdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdf ~asdfasdfasdfasdfsadfasdfffffffffffffff...

asdfasdfasdf

tttttt...

ERP订单流程

ERP订单流程...

Nest 从入门到放弃

最近开始学 Nest 啊,据说是能跟 JAVA Spring 有的一拼的框架...

将mongo的查询结果写到文件里

数据库的连接的命令如下 mongo my-host:27017/mydb --ssl --sslCAFile my-ca-bundle.pem --username user --password p...

mark

sdsdsdsd...

1231213213112313

123123...

优秀的Node.js第三方库推荐

axiosAxios 是一个基于 Promise 的 HTTP 库,可以用在浏览器和 node.js 中 cheeriocheerio是一个nodejs实现的类似jquery核心功能的一个模块,用它可...

测试呀

广泛大使馆管道施工幅度顺丰大概岁的法国当时法国对```` 范德萨手动阀是的 范德萨士大夫是的****...