本文主要是解决手机尺寸不同,导致布局混乱,控件错位的问题,至于图片尺寸,文字大小的问题,简单说一下,不详细描述。
控件(布局)命名规范,延续性命名法则(我也不知道有没有这个法则,自己取的名字).
本文的图片,文字适配方案,均是在此设计模式下,适合,其他另外考虑。本文的设计模式,为“装箱模式”。
所谓装箱模式,其实,就是,把我们的手机屏幕看作一个容器——箱子,我们的布局(线性布局,相对布局等)看作小箱子,
我们的控件(button,textviw等)看作物品。我们把一个个物品按我们想要的排布方式,放在一个小箱子里面,再把这个小箱子,
按照指定位置,放入箱子。这个装箱,就完成了。
主要解决问题:
1.布局混乱,控件位置关系错误
2.图片尺寸和文字尺寸问题
3.UI命名规范
下面,详细说明一下,具体实现,如何排布的问题。
1.布局混乱,控件位置关系错误解决方案
如下图,首先,准备一个箱子,这个箱子,就是我们用来放小箱子的东西,这里一定要采用相对布局,通过相对布局属性,确定
各个小箱子的相对位置,相对位置,主要参考箱子(相对布局)的9个基本点(中间点和边角点)。
然后,就是小箱子的问题,小箱子,同样划分出9个基本点,里面的控件,就可以相对这些基本点,摆放。
这样摆放之后,就会发现,不管这个手机尺寸怎么变化(通常变化范围内),分辨率怎变化(通常变化),小箱子之间的位置关系
不会改变,控件之间的位置关系也不会变化。到这里,布局,控件的位置关系问题就基本解决了。
2.图片尺寸和文字尺寸问题
图片和文字尺寸(大小)问题,首先要确定的是单位,关于文字,有人说用sp,有人说dp,其实,并没有多么统一的一个标准,个人比较偏向与dp,原因是
dp有一个简单的特点(至少现在的手机,都挺适用的)手机尺寸大,它就大(不考虑索尼之类的变态手机)。所以,用dp,文字会随着手机尺寸变大,也跟着变大,
并且,测试过不同的手机,发现,变大或者变小之后,看着也协调(毕竟是给人看的东西,还是以实际效果为准,其他什么数值,用户又感觉不到)
关于图片:由于美工同学,同时要做ios的图片,所以,和ios的同学统一了,用xhdpi。图片中,用自动匹配大小(wrap)。
3..UI命名规范
这里用延续性法则,这个法则的起点是,activity。
因为,activity是所有控件的起点,不详述原因,只说规范:以登陆页面为例 LoginActivity
1.xml ——》activity_login
2.xml中布局(相对布局为例)——》rb_login
2.1.相对布局中有其他布局(假如又是相对布局)——》rb_login_rb_1(这里放这个布局的功能名字,如果不明确,也可以简单的用1表示后面同级,就递增)
(2 和 2.1的情况不多,只要复杂页面才会用到)
3.布局中控件,如Edtxtview(登陆输入框的用户名)——》et_login_username
这里说两句:控件,需要命名的情况,主要是两种情形,一种是再相对布局中,相对位置,需要用到。
一种是需要控制和变更控件时。
总而言之,延续性法则,命名方式,可以总结为
【本控件类型(et,tv,iv,lv等)简写】_【上级(父级)控件或者容器(view,xml等)】_【标识(如:username,),作用(如:back)等】
当然,这是基本规范。具体情况还要灵活使用。
下面说一下,资源文件命名方式,这里以图片为例(string,attr这些东西,参考图片命名规范)
命名基本格式:
两种情况,一种是可以操作,比如点击
一种是,仅仅是一个图标显示
第一种情况:所属页面(如loginctivity,就取login)_(所属二级以上页面,可能没有,就没有这一项)_作用,标识(如 ,calender表示日历)
举例:login_calender( login_listview_item_calender )
第二种,情况,只需前面加一个icon_即可 icon_login_calender