热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

android8.0应用图标适配调整_适配(移动端+web端)

移动端什么是手机适配?手机适配:设计狮制作效果图,程序猿把效果图应用到不同的手机,对不同的屏幕进行界面调整的过程࿰

移动端

什么是手机适配?
手机适配:设计狮制作效果图,程序猿把效果图应用到不同的手机,对不同的屏幕进行界面调整的过程,确保界面不变形,呈现效果图的位置、尺寸、比例。

一、屏幕尺寸、屏幕分辨率、屏幕像素密度

  • 屏幕尺寸:指屏幕的对角线的长度,单位是英寸,1英寸=2.54厘米,常见的屏幕尺寸有2.4、2.8、3.5、3.7、4.2、5.0、5.5、6.0等。所以6.0的手机 6*2.54 = 15.24 厘米。
  • 屏幕分辨率:指在横纵向上的像素点数,单位是px,1px=1个像素点。一般纵向像素 * 横向像素来表示一个手机的分辨率,如1960 * 1080。(这里的1像素指的是物理设备的1个像素点)。比如(iphone6 750 * 1337) (iphone6plus 1960 * 1080)
  • 屏幕像素密度/像素密度/屏幕密度::屏幕上每英寸可以显示的像素点的数量,单位是ppi,即“pixels per inch”的缩写。屏幕像素密度与屏幕分辨率有关。

二、物理像素,CSS像素

  • 设备像素/物理像素:(分辨率)买手机的时候有一个nxm的分辨率,那是屏幕的nxm个呈像的点,一个点(小方格)为一个物理像素。它是屏幕能显示的最小粒度。设备像素也被称为物理像素,他是显示设备中一个最微小的物理部件。每个像素可以根据操作系统设置自己的颜色和亮度。任何设备的物理像素的数量都是固定的。
  • CSS像素:CSS像素是一个抽象的单位,主要使用在浏览器上,用来精确的度量(确定)Web页面上的内容。它是为web开发者创造的,在CSS或者Javascript中使用的一个抽象的层。一般情况下,CSS像素被称为与设备无关的像素(device-independent像素),简称为“DIPs”。在一个标准的显示密度下(普通屏),一个CSS像素对应着一个设备像素。
  • CSS像素与物理像素的关系:一个width为200px的元素,它占据了200个CSS像素,但200个CSS像素占据多少个物理像素取决于屏幕的特性(是否是高密度,即像素比)和用户的缩放行为。在苹果的视网膜屏幕中,视网膜的像素密度是普通屏幕的两倍,这个元素就跨越了400个设备像素,如果用户放大,它将跨越更多的设备像素。当然现在好多手机的像素比变得越来越大,比如我之前用的魅族手机和现在用的iphone 8 plus都已经达到了3,所以这个元素正常情况下就跨越了600个设备像素。
  • 设备独立像素:设备独立像素(也叫密度无关像素),可以认为是计算机坐标系中的一个点,这个点代表一个可以由程序使用的虚拟像素(比如:CSS像素),然后由相关系统转换为物理像素。
  • 位图像素:一个位图像素是栅格图像(如:png,jpg,gif等)最小的数据单元,至少1个位图像素对应1个物理像素,图片才能得到完美清晰的展示。

对于Web开发者而言:我们使用的每一个CSS和Javascript定义的像素本质上代表的都是CSS像素,我们在开发过程中并不在意一个CSS像素到底跨越了多少个设备像素。我们将这个依赖于屏幕特性和用户缩放程度的复杂计算交给了浏览器。

三、像素比

  • 像素比:它的官方的定义为:设备物理像素和设备独立像素的比例,也就是devicePixelRatio = 物理像素/独立像素(window.devicePixelRatio)
29ad7044fb533355c75f0443b034c22c.png

iphone5

6569f1212ff38074107754aced8aa351.png

iphone6 plus

四、视口

  • 布局视口:在PC端上,布局视口等于浏览器窗口的宽度。
  • 视觉视口:视觉视口是用户正在看到的区域。用户可以缩放来操作视觉视口,而不影响视觉视口的宽度。视觉视口决定了用户看到了什么。

五、UI界面设计和适配尺寸规范(iphone5 iphone6 iphone6Plus)

fb42c42520fdb7d5b75b29efd01036ad.png
dca62c0a71e58d1f63de71943b212f47.png
ce23526b019224cb133202402dad01ea.png


如果以iphone5s 为基准设计稿,适配iphone6 或者是iphone 6 plus的方法和技巧。
当旧的iPhone 5程序运行在iPhone 6上面,假如没有经过适配。旧程序自动等比放大,铺满新手机,旧程序也可以正常运行。这种方案可算是自动适配。但因为旧程序拉伸了,整体看起来有点虚,也不能更好利用大屏空间。

一套设计稿适配的前提:设计稿必须为矢量的。图片除外。比如图标,线、点、颜色块等元素都是矢量或者形状。

分为两步走:如果是一些常规界面:比如以文字、列表为主的界面,大部分是指布局相对简单的界面。不用设计师怎么切图的界面,这些基本可以让ios程序员完成适配即可。显示效果也不会太差。如果是一些定制界面:此时设计师应该手动为大屏幕重新调整设计。另外设计一些大图或者是大的图标,以满足适配iphone6.或者iphone plus

前提是你们的ios程序员需要了解苹果公司的一个工具:Auto Layout
Auto Layout (Auto Layout Guide: Introduction),可以理解成 iOS 上的 CSS,如果设计师用 Auto Layout 提供的排版语言描述出 UI 布局,那不同尺寸的 iPhone 只要同一份设计稿就可以了。

总之:适配iPhone 6/6Plus UI界面设计的要点:
1、针对iphone6 可以用高度不变,横向拉伸。或者等比拉伸
2、全矢量作图。
3、定制界面或图片位图必须额外制作大图。
4、工具栏、状态栏、导航栏的高度规范和设计字体大小等均以2:3的比例放大即可。
5、iphone的5/5S/6/6P的屏幕比例为9:16,所以比例这个问题现在不是很大,但因 Plus增加横版显示,所以建议对于一些用户量较高的软件进行重绘。
如下图所示:

5f2215856012663dde521dc992cbee7a.png

给app设计师9点建议

  • 1、以后的应用程序,都使用AutoLayout, 不要再用绝对定位。
  • 2、使用类似网页的方式来设计界面。
  • 3、设计师好,程序员也好,尽量使用点这个单位进行思考,而不要使用像素。比如,你需要做44 x 66个点的按钮,2x模式,就乘以2, 3x模式就乘以3。这样的思考方式可以大致估计到真实的物理长度。44个点,就是手机上导航栏,工具栏的高度。假如用像素思考,容易使得做出的图片过大或者过小。
  • 4、非矢量素材,就可以做尺寸最大的,之后再进行缩小。比如你需要兼容3x的屏幕,就直接做最高那种图片。
  • 5、而当使用Flash之类的矢量工具来做素材的时候,应该直接做点那个尺寸。比如44 x 66个点的按钮。就建立一个44 x 66的场景。之后再导出成2倍图,3倍图,因为矢量放大不失真。不要建立一个3x的场景,导出成大图片,再进行缩小,这样就容易失真。更理想的是直接使用矢量图。
  • 6、假如是那种导航栏,工具栏之类的背景图,需要横跨整个屏幕。可以只切一小块,让程序拉伸,拉伸方式是保持两边的像素不动,只拉伸最中间的一列像素。需要拉伸的话,横方向就不要出现一些渐变色。
  • 7、按钮的点击区域,不应该少于44像素,就算按钮的图片看起来比较小,也应该使得点按钮周围的透明区也有反应。
  • 8、可以按照你当前最方便测试机子的型号来做一些主要预览图,效果图。比如你手头有iPhone 5,可以按照iPhone 5的尺寸,320 x 568个点,需要兼容iPhone 6 Plus,就使用3x的模式。这样方便将图片放进手机里面看实际的效果。有多个测试机,就选较大的,之后再进行一些细调。假如支持iPhone 6 Plus的横屏模式,需要另外处理。
  • 9、上面说的是应用的处理方式,游戏会有些特殊。现在很多游戏,按照1136 x 768的像素尺寸来设计场景,这样可以同时兼容iPad和iPhone,并只使用一份图。iPad 1x模式下尺寸是1024 x 768像素,iPhone 6在2x模式下,是1136 * 640。这种尺寸,可以简单将场景居中显示,各自将场景拉伸到最大。

web端

目前我们pc项目的设计稿尺寸是宽度1920,高度最小是1080。

适配目标:

  • 1.在不同分辨率的电脑上,网页可以正常显示
  • 2.放大或者缩小屏幕,网页可以正常显示

对于宽度的适配:
首先设置html,body{width:100%;overflow-x:hidden;} 然后我们可以把页面分解为背景层和内容层,对于背景层,我们一般都要求完全铺开,对于内容层我们保证我们的内容都封装在盒子内,然后margin:0 auto;保持居中显示,盒子里面的内容,我们再另外调整 (内容区定宽,在达到某个断点之后更改内容区的宽度,并把某个内容显示/隐藏)

对于高度的适配:
一般情况下,页面都比较高,我们通过给每个模块设置具体的高度值来做页面,然后页面会出现导航条,我们可以拉动导航条来浏览,但是有的页面的需求是主体内容直接在不同的浏览器上都能完整显示,不通过导航条来浏览

如何做?

1、百分比的应用
百分比的应用在于主视角的定位和缩放,百分比的取值以原设计稿的尺寸为标准。什么意思呢?举个栗子,一个元素在原设计稿里,量出来距离顶部是 200px,如果写死可能是top:200px 或者margin-top:200px,现在要转成百分比,那么这个值可能就是23.3%。这个值怎么算?如果设计稿是 1080,200/1080=18.51%这样计算出来百分比的值。
但是,有个地方要注意,流体布局下,百分比的值是根据父层计算的;absolute布局的元素是根据最近的relative父层计算的;fixed布局的元素是根据window的可视区域计算的。
所以,如果要达到适配的效果,不只是当前元素需要用百分比值,其参考计算的元素也是要动态变化的。
另外还有一个就是图片缩放的问题,pc很多主视角都是切图的,但是pc不能直接用background-size。在pc我们可以直接通过img标签来插入图片,通过设置 img宽度为100%,高度auto,然后让它根据父层来等比缩放来实现。

2、js监测
需要js主要有两个原因:
上面说了,百分比是要有父层做参照物的,那么如果父层都用百分比,那就是最终是根据window来参照的,因为pc绝大部分都是宽屏设备,而且他们的比例是不一致的,我们来计算下(190是减去浏览器工具条、window桌面条、我们页面通用顶条):
设计稿:1920/(1080-190) = 2.16
14寸普通笔记本:1366/(768-190) = 2.36
所以,我们不能宽高都100%按照屏幕尺寸来计算。另外考虑到主要是高度对pc页面的主视角影响比较大,我们需要借助js来计算确定一个最小高度临界值(当然这个可以用css的min-height来实现);
另外一个是,通过js判断最小高度临界值,再加上这个最小临界值的class,为了处理那些特殊的布局或者百分比无法完全解决适配的元素,比如字体的相关布局



推荐阅读
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 安卓select模态框样式改变_微软Office风格的多端(Web、安卓、iOS)组件库——Fabric UI...
    介绍FabricUI是微软开源的一套Office风格的多端组件库,共有三套针对性的组件,分别适用于web、android以及iOS,Fab ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 2022年的风口:你看不起的行业,真的很挣钱!
    本文介绍了2022年的风口,探讨了一份稳定的副业收入对于普通人增加收入的重要性,以及如何抓住风口来实现赚钱的目标。文章指出,拼命工作并不一定能让人有钱,而是需要顺应时代的方向。 ... [详细]
  • 本文介绍了响应式页面的概念和实现方式,包括针对不同终端制作特定页面和制作一个页面适应不同终端的显示。分析了两种实现方式的优缺点,提出了选择方案的建议。同时,对于响应式页面的需求和背景进行了讨论,解释了为什么需要响应式页面。 ... [详细]
  • JavaScript和HTML之间的交互是经由过程事宜完成的。事宜:文档或浏览器窗口中发作的一些特定的交互霎时。能够运用侦听器(或处置惩罚递次来预订事宜),以便事宜发作时实行相应的 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 本文介绍了腾讯最近开源的BERT推理模型TurboTransformers,该模型在推理速度上比PyTorch快1~4倍。TurboTransformers采用了分层设计的思想,通过简化问题和加速开发,实现了快速推理能力。同时,文章还探讨了PyTorch在中间层延迟和深度神经网络中存在的问题,并提出了合并计算的解决方案。 ... [详细]
  • 本文介绍了一种处理AJAX操作授权过期的全局方式,以解决Asp.net MVC中Session过期异常的问题。同时还介绍了基于WebImage的图片上传工具类。详细内容请参考链接:https://www.cnblogs.com/starluck/p/8284949.html ... [详细]
  • 本文介绍了自动化测试专家Elfriede Dustin在2008年的文章中讨论了自动化测试项目失败的原因。同时,引用了IDT在2007年进行的一次软件自动化测试的研究调查结果,调查显示很多公司认为自动化测试很有用,但很少有公司成功实施。调查结果表明,缺乏资源是导致自动化测试失败的主要原因,其中37%的人认为缺乏时间。 ... [详细]
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
author-avatar
飞龙在天2602911735
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有