手机UI窗口布局笔记
UI设计的难点在于在不同分辨率里保持高度的灵活性。
其实这个是很不现实的一个命题。
分辨率的不同带来字号、图标大小、贴图大小、控件布局的不同。
所以很多软件厂商一般会针对不同的分辨率开发不同的版本。
但是在条件允许的情况下还是要考虑界面的灵活性。
下面有几个心得总结下:
一、字号一定要大,大到用户把手机离自己一尺的距离还能清晰的看到。行业应用软件并不在乎软件有多漂亮,但是一定得好用,这个需要行业软件的经验。目前在mobile手机上,我使用的是12号字或者14号字。12号对于240x320的手机差不多。而更大的分辨率字号就要上14。其实14号字对于240x320也是非常不错的选择主要是控件会不够现实。
二、anchor的使用。anchor属性的确是个好东西,但是在调试的时候一定要自己拖动整个窗口货这panel试试。另外控件在容器里面在右边的控件如果anchor属性设置了right,会自动流出一个空距,这个应该是为滚动条准备的,哪怕根本不会出现滚动条。
三、Dock属性,这个属性也非常得好。以前用.net的强类型dataset自动生成的数据操作窗口。所有的控件都是通过dock=top进行窗口布局。这样做的好处就是窗口整体布局就是自上而下的布局,不需要考虑横向的布局。但是如果所有的控件都是用这种布局方式紧紧适合窗口比较简单。
四、混合使用anchor、dock、容器控件实现窗口复杂控件布局。控件比较多,稍微复杂,可以尝试通过容器控件panel分割控件。将逻辑或位置上有关联的比较复杂的控件放在容器控件里。最后其实就是对容器的进行dock方式的布局。而在容器空间里就可以通过anchor属性进行微调。整个使用的原则就是:整体布局用dock,局部控件使用anchor微调。另外对于CE系统,菜单栏在上方,控件如果不在设置了dock的容器控件里就会被菜单挡住,所以比较推荐多使用panel进行分割整个窗口的布局。这样降低UI的布局难度,又可以规避很多问题。
五、其他一些注意。
1窗口如果设置为最大化,mobile系统会把最上面一行的状态栏隐藏掉。对于CE不会存在这个问题(CE默认没有状态栏,这里的状态栏是手机厂家做了自己状态栏,如酷派的手机);
2手机控件的颜色,可以写死了,就用RGB值,例如用系统控件默认颜如ActveBorder会因为不同系统定义的控件的颜色而会颜色跟预想不同;
3不要轻视输入法的问题,输入法有时候会占用1/3之一的窗口甚至更多,所以如果对于输入不多情况下,比如用户的控件只会输入数字或者固定字母这类简单应用可以考虑自己做个带输入功能的控件,减少呼出输入法的机会;
4合理使用text控件的提示文本功能,有时候这东西会让用户觉得他已经输入了;
5不要轻视tabindex的作用,要考虑到一些键盘操作;
6尽量介绍不必要的控件。用户需要的简洁界面,有时候使用tabcontrol比让用户拖动滚动条来的直观。但是还是要看用户的使用习惯。
7label没有autosize功能滴。所以如果用程序的办法根据不同版本控制label的字号,别忘了控制height值。
好了就说这么多了。