UI设计问题-寻求方案-谢谢!

guokai1217 2006-10-12 02:55:55
刚才的聊天记录,有点乱,怕重新说需求不清楚、直接帖上来了。
谢谢过目
------------------------------
me 说:
有没有做过解析器方面的?
需求其实大致如下:
我们做手机上的应用软件、在做不同机型的适配时、会有很多的属性不一样、目的是对于所有的UI元素不进行硬编码。 完全写活
比如简单的包括一些属性的设置:
矩形位置、颜色、字体类型...
复杂点的包括界面布局等等
me 说:
属性信息处理可能比较容易、通过一些类似XML之类的配置文件可以做到
但是像重新布局之类的话就需要加入一些行为特性、可能需要内嵌一个解析器比较好写(比如javascript/lua/python之类的)
我正在想合适的方案、想让countryman同志帮助参考一下
countryman 说:
界面编辑器?

me 说:
也不算界面编辑器吧
就是比如你做的软件、UI部分非常的灵活、可以充分的调整。 比如用html/javascript进行布局的界面、肯定要加入解析部分。没有硬编码
countryman 说:
哦,软件的功能和界面类似,但是要随具体的机器变化,是么?
me 说:
恩、是的
countryman 说:
那你们的界面是用什么画出来的?
countryman 说:
是html 还是gdi?
me 说:
就是一些最原始的系统api、就当成win32 raw api 就好了
me 说:
“重新布局” 是指UI显示的元素、位置等都不一样
比如使用MVC架构、其中view部分需要足够的灵活。不去硬编码
countryman 说:
就是说得有个配置文件决定画什么和画的效果是么?
me 说:
对~ 初步的解决方案是用配置文件、比如xml之类的
但是还需要配置行为、所以可能需要脚本解析部分
countryman 说:
什么叫配置行为?

countryman 说:
配置什么行为?
me 说:
比如在做适配的时候、不同机器的屏幕可能差别很大
虽然功能是大同小异的
但是界面元素存在的区别非常的大
-------------------
比如显示的元素不一样、显示的位置也不一样等等
countryman 说:

countryman 说:
我觉得你的需求还是不很明确
me 说:
需求是明确的、我可能说得不清楚
------------------
就是让UI部分足够的灵活、没有硬编码(比如最后的二进制可执行文件或者类似*.jar文件是不变的)
countryman 说:
等下班以后我和你讨论吧
countryman 说:
如果没什么顾忌,到论坛发帖子讨论如何?
me 说:

其实大部分的工作可能都是做解析器
countryman 说:
未必,呵呵
...全文
249 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Wolf0403 2006-10-12
  • 打赏
  • 举报
回复
如果为了代码复用,类似 X 的架构何如?显示、布局管理(wm)和程序分离,通过确定的 protocol 通信。这样,不同的机型只要分别处理一个 wm 就 OK ……
guokai1217 2006-10-12
  • 打赏
  • 举报
回复
刚开始设计。
发帖的焦点是朋友们根据需求提供点建设性意见,或者评判一下上面的方案。谢谢!
guokai1217 2006-10-12
  • 打赏
  • 举报
回复
稍微补充一下,可能前面的描述不够清楚。
1、需要动态改变很多属性信息[所显示内容以及表现形式不变]。比如:
文本颜色、字体类型(粗体、斜体、[大、中、小]型).
背景颜色、前景色
对齐方式
边框宽度、边框颜色
矩形位置
滚动条(进度条)的大小、颜色
所用到的静态图片或者动画

可能方案:采用配置文件的方式(INI格式、XML方式或者自定义的专有格式)描述具体的属性以及对应的值、可执行文件加载配置文件并且解析其中的内容。在属性发生变化时、只需要改变配置文件即可。实现较为容易。

2、需要动态改变很多属性信息,布局方式发生变化,所显示的内容以及表现形式发生变化。
__________ ____________
| | | |
| Name | | Age |
|__________| -> |____________|
| | | |
| Age | | Name |
|__________| |____________|
| |
| Sex |
|____________|

可能方案: 采用可解析脚本的方式、脚本解析器宿主于可执行文件中。将实体模型和界面显示部分清楚地划分开。可执行文件负责完成实体模型的功能,实体模型提供相应的访问接口。界面显示部分的策略完全由脚本决定(具体显示哪些内容、如何布局、所显示的外观样式)。考虑跨平台性、制作脚本解析器本身的难度、分析设计的难度较大、实现时间较长。 运行期进行的语意分析、语法分析等必备环节、效率方面也需要着重考虑。是设计时的一个难点。

注:所显示内容以及表现形式不变:
“内容”是指实际问题域中的对象。比如”距离“是一种“内容”,“方向”是一种“内容”。如果在新的视图中减少、增加、替换了对这一对象的显示。则显示的内容发生了变化。
“表现形式”是指内容的具体展现方式,比如我们可用用字符串“东南方向”来表示“方向”这一内容。如果换成一个罗盘图片通过罗盘指针来显示“方向”这一内容、表现的形式就发生了变化。
laiwusheng 2006-10-12
  • 打赏
  • 举报
回复
mark
guokai1217 2006-10-12
  • 打赏
  • 举报
回复
我刚开始接受这个任务。
目前正在想方案、希望能得到你的宝贵意见。需求不清楚的地方随时补充!
其实还有一些重点考虑的问题、比如效率是个大问题。 但是为了突出重点、暂时先不说效率问题。
实际的目标平台就是一些常用的移动平台。比如(BREW, SYMBIAN, Windows Mobile, PALM......)
laomai 2006-10-12
  • 打赏
  • 举报
回复
等下班再来仔细研究,呵呵

24,860

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧