1. 背景

由于android端需要进行多屏幕适配,这就给UI&RD之间的沟通产生了一些困难。我下面将会对这两种角色的沟通,说明了一下我们项目中沟通的方式和规则。

原则:客户端跟UI约定了各种库(字体、距离、颜色),库的实际值根据各种屏幕等信息提前适配,但名字跟UI给的标注图保持一致。

后文分别对字体、距离和颜色进行解释:

2. 字体库和距离库

UI给出的效果图&标注均在720下面标注的。客户端针对720的标注来生成代码。如图:

为什么需用720下进行标注呢?

android官方文档建议选用320的屏幕作为标准屏幕进行适配,但当前主流机型的屏幕已经升级为720。且UI同学做的效果图就为720下的效果,综上所述,我们采用720的标注。

2.1 距离

针对所有距离,直接使用字体距离库font_distance_pool.xml中的dsxx, 比如:@dimen/ds50。

如何适配的?

针对ds50,分别在xh和h下对应不同的大小,分别为25dip和22dip。

为什么在xh下是25dip?

xh下的密度为2,所以设置为25dip,刚好为25*2=50

为什么在h下是22dip?

这是UI单独设置的规则。h的文件夹一般对应480的屏幕,720与480屏幕等比换算后,50px应该折算成33px,那33px在h下对应的值就大约为22dip了。

一共多少距离?

根据这个规则,已经把100px以下的距离都已经换算好,生成了xh和h的font_distance_pool.xml文件。超过100px的距离为不常用距离,当需要使用时,按照上面的规则,自行添加到距离库中。

2.2 字号

针对所有字号,直接使用字体距离库font_distance_pool.xml中的fontsizexx,比如:@dimen/fontsize22。

一共多少字号大小?

由于跟UI同学的规划,我们把整个应用的所有字号都进行了收敛,控制到7个字号。如上图。

为什么字号的单位的dp而不是sp?

由于android系统可以在设置中更改字体大小。比如在10sp的大小,如果选择大号字体,该字体大小就可能达到了15px。用户随意更改了字体大小,就跟UI设计图中的字体大小发生了差距。这样就很难保证效果图了。所以我们采用了dip,使用了dip就使得系统设置字号大小对本应用无效了。同时,我们本地应用提供了更改字号的功能,这样使得字号的变化处于可控状态。

如何适配不通屏幕?

同样的,字号也会针对xh和h下有适配关系,跟距离的一致。 同样参考:font_distance_pool.xml文件

4. 颜色库

对于颜色,我们做了相应的努力,也跟UI同学一起收敛了一下UI的使用,生成了颜色库,控制整个应用的颜色在30种以内。所有在应用中的颜色都能从该库中找到。

对应颜色,我们有存在日间和夜间模式,但我们只需要日间标注,就知道了夜间的信息,如何做到?

首先,定义了规则:所有日间和夜间的颜色对应关系全部在颜色库colors_pool.xml 里面,并且根据名字的微笑变化来进行匹配。比如: 日间是color,那夜间是color_1。 用_1来区分是否为夜间资源。并且通过代码,根据当前状态自动寻找对应资源。

其次,在日间标注上面,颜色使用颜色库里面的名字。

这样做有什么优势?

RD看见标注很清晰,并且不需要关心夜间信息。更加专心的处理业务功能。

UI只需要一次投入来规划颜色库,以后不需要再做夜间效果图。减少工作量。

5.后续

通过以上努力我们把字号、距离、颜色搞定了。针对android的适配,我们前进了一大步,也方便了一大步。后续,我们可以考虑在布局上做些文章。由于UI和RD在布局上的理解不一致,我们需要通过一些手段来化解理解上的鸿沟。期待后面的探索。

UI_RD协作开发流程的更多相关文章

  1. Gitblit搭建及Git协作开发流程

    1. 概述 目前主流的是git作为自己代码管理,但是采用github需要付费才能够使用,如果不付费,代码需要公开.创业团队及小型开发团队都有必要搭建自己的代码服务器,自己摸索需要一定的时间,会赶不及项 ...

  2. 前端项目git操作命名规范和协作开发流程

    前言 一个项目的分支,一般包括主干 master 和 开发分支 dev,以及若干临时分支 分支命名规范 分支: 命名: 说明: 主分支 master 主分支,所有提供给用户使用的正式版本,都在这个主分 ...

  3. 20个可以帮你简化iOS app开发流程的工具

    这里推荐20个可以帮你简化iOS app开发流程的工具.很多开发者都使用过这些工具,涉及原型和设计.编程.测试以及最后的营销,基本上涵盖了整个开发过程. 原型和设计 有了一个很好的创意后,你要做的不是 ...

  4. 实例讲解基于 React+Redux 的前端开发流程

    原文地址:https://segmentfault.com/a/1190000005356568 前言:在当下的前端界,react 和 redux 发展得如火如荼,react 在 github 的 s ...

  5. python 面向对象终极进阶之开发流程

    好了,你现在会了面向对象的各种语法了,  但是你会发现很多同学都是学会了面向对象的语法,却依然写不出面向对象的程序,原因是什么呢?原因就是因为你还没掌握一门面向对象设计利器, 此刻有经验的人可能会想到 ...

  6. GitHub Flow & Git Flow 基于Git 的两种协作开发模式

    介绍基于Git 两种协作开发模式,GitHub Flow & Git Flow 对于Github 一些好用的特殊操作技巧 ,可以见GitHub 特殊操作技巧 和Git的基本操作 一 GitHu ...

  7. 利用git 进行多人协作开发

    现在,大部分项目都是用 git 来管理代码的,但当项目变大.多人协作时,git 的使用就变得复杂了,这时就需要在 git 使用的流程上来思考如何更优的使用 git. 对于大部分 web 项目而言,并不 ...

  8. 分享一篇 Git Web 开发流程

    分享一篇 Git Web 开发流程 web 项目如何进行 git 多人协作开发 https://segmentfault.com/a/1190000018165757

  9. git的团队协作开发

    title: git的团队协作开发 date: 2018-04-24 14:00:03 tags: [git] --- 项目负责人创建组织架构 在控制面板中点击组织按钮,添加组织,在这里可以把组织理解 ...

随机推荐

  1. firefox不支持background-position-x background-position-y,使用background-position:5px 5px;

    firefox不支持background-position-x background-position-y,使用background-position:5px 5px;

  2. Tomcat连接池

    步骤1: 找到Tomcat安装目录下的context.xml文件,在config目录下.在<Context/>节点下加入: <Resource name="jdbc/myt ...

  3. (转)LitJson 遍历key

    本文转载自:http://blog.csdn.net/inlet511/article/details/47127579 用LitJson插件获取到的对象,如果想遍历对象中包含的子对象的key,可以用 ...

  4. MySQL使用位运算

    通常 我们的数据表中 可能会包含各种状态属性, 例如 blog表中,我们需要有字段表示其是否公开,是否有设置密码,是否被管理员封锁,是否被置顶等等. 也会遇到在后期运维中,策划要求增加新的功能而造成你 ...

  5. LVS包转发模型和调度算法(转)

    LVS简介 Internet的快速增长使多媒体网络服务器面对的访问数量快速增加,服务器需要具备提供大量并发访问服务的能力,因此对于大负载的服务器来 讲, CPU.I/O处理能力很快会成为瓶颈.由于单台 ...

  6. VoLTE、呼叫等待(保持)

    VoLTE 的出现是手机通话的革命,VoLTE带来更好通话质量,更快的接通时间,接近0掉线这些特点,还可以一边通话一边上网,一方面VoLTE需要运营商的支持,另外一方面也需要手机终端的支持. 什么手机 ...

  7. 嵌入式设计模式:有限状态自动机的C语言实现

    转自:http://www.cnblogs.com/autosar/archive/2012/06/22/2558604.html 状态机模式是一种行为模式,在<设计模式>这本书中对其有详 ...

  8. tcp-ip-状态详解(转)

    TCP正常建立和关闭的状态变化     TCP连接的建立可以简单的称为三次握手,而连接的中止则可以叫做 四次握手.   建立连接   在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建 ...

  9. 在Visual Studio 2010/2012中 找不到创建WebService的项目模板

    参考文章: http://blog.sina.com.cn/s/blog_6d545999010152wb.html 在 Visual Studio 2010 或者2012的新建 Web 应用程序或者 ...

  10. TCP程序设计

        在Java中使用Socket(套接字)完成TCP程序的开发,使用此类可以方便地建立可靠的.双向的.持续的.点对点的通信连接.     在Socket的程序开发中,服务器端使用ServerSoc ...