其实前面在给了一套 接下来做的 手机界面 简单示意图 后我提出了一些新的概念和问题。
其核心思路在于:
1.对于绘图层上的应用层,用户不希望也不想去管那么细节到像素级的参数设置。
2.但界面的设计者又需要指定和设计界面的布局,因此,我们提出了一个 布局 的 概念。
说白了就是,不管是哪一种界面,最终总是可以被划分或者人为归类为 各种各样的 表格。
如下图:
<ignore_js_op>
左边这个界面比较综合,它很像一个短信编辑框,事实上,它适用于任何类型的编辑框,比如记事本之类的。
而右边则是一个通用的多项内容选择。
但如果我们仔细看那灰色划分出来的表格,你会发现,它,其实只不过是一个 1×3 和 一个 2×3 的 表格。
因为对于一个特定的屏幕而言,(假如我们已经设定好了三段的长宽比例),那么,其实对于界面中的任何一部分,它们的图形的起始位置,大小尺寸都是固定的。
这个时候,我们只要简单指定 1 2 3 4这些简单的次序号,就完成了配置,整个过程,我们无需计算,设置,调整任何的像素级的位置数据。
而且,这样的好处是,做出来的界面,容易高度统一。
当然,如果你稍微注意看那个小键盘,你会发现,这个小键盘也可以作为一个 不占整个屏幕的一个 小布局表。
这个时候,我想起Qt中控件的一个设计思想。
Qt中并没有特别的区分屏幕和控件的分别,在它的设计里,一个屏幕是独立的,一个控件也可以是独立的。
它们都是占有一定像素区域的一个图形元素。
这个时候我真正理解了他的这种设计。
因此,在这个方案里,我也会适当加入对这种思路的借用和发挥。
3.布局表通用化
我很早就认识到,不同的界面风格和设计者,必然会需要很不一样的布局划分,小到数目的不同,大到每个部分的长宽比例不一样,甚至出现非规整的 N*R之类的都有可能。
而这种布局又影响了 界面的配置。
准确的说,有什么样的布局表就有什么样的配置参数。
因此,这个地方为了通用和易于扩展,必须做成,布局表配合配置表 一并提供的打包模式。
而FreeUI内核需要提供一个可以自动识别和适应这些不一样的布局表和配置参数 的机制。