2017-03-07 45 views
0

该应用程序的主要目的是为学生提供教育课程。 我有两个参与者:通过拖放和控制来创建新视图(自定义布局)

  • 教师谁创造的,当然从Android应用程序 里面的内容,其中的教训可能是Android的看法任意组合。
  • 学生谁查看这些课程和与经验交流,可点击按钮,听到的声音(仅查看此教训)

第1阶段:实现拖放编辑
到目前为止,我有能够创建新的视图(ImageViews TextViews等)&将它们放在新的布局中。

但是,一旦我放弃他们,我再也无法控制他们了。现在我只限于一种布局风格,我不想要。我想达到机器人工作室布局编辑器,在那里我可以添加意见,改变自己的位置,大小等的水平

第2阶段:保存布局 你有什么建议的方式,以节省布局数据将显示给学生。 JSON? XML?

第3阶段:解析布局数据
我已经实现XML解析器和使用,我在Android Studio中创建了一个布局进行了测试。然而,根据你的建议,我可能会改变我解析课程的方式。

将& DropLayout编辑器 - 导师布局 - 学生布局 - Android Studio中

pic

回答

0

我建议如下:

  • 第1阶段

创建自定义所有小部件的视图ca (LinearLayout,ImageView等)。让他们都实现了以下接口:

interface Layout { 
    Layout getLayout(); 
    LayoutEditor getLayoutEditor(); 
} 

哪里Layout是该视图的布局(XML或JSON)和LayoutEditor的序列化表示是它可以用于修改对View(layout_width,layout_height背景属性的另一个接口等)

  • 第2阶段

所以,你有后通过拖放小部件来说出应用程序画布,您将获得实现Layout界面的视图层次结构。只要递归地走这棵树,并在每个视图上调用getLayout(),然后将Layout层次结构缝合在一起。然后你可以序列化并保存。

  • 第3阶段

你反序列化Layout保存,并通过布局树走,并用它重新创建视图层次结构。

退房proteus一些吸气。这使用JSON布局来扩充原生Android视图。

+0

您是否有任何想法是否调整大小或缩放视图将使用LayoutEditor工作,还是只能用于拖放? 预先感谢 - 去测试 –

+0

一个更容易实现的解决方案是,当您长时间按下或双击画布上的小部件时,请带上用户或打开表单,您可以在其中编辑属性值或添加或删除它们。调整缩放比例可能很难实现。你的方式是通过在你的所有自定义小部件上创建一个触摸监听器和手势检测器。就我个人而言,我觉得这将是一个应用程序版本1的说法。 – vader

+0

布局编辑器是您将用来构建表单并与表单交互的接口。它可能有set(String属性,Object值)和Object getAtrribute(String name)方法。另外Iterator getAllAttributes()构建您的表单页面。或者这些线上的东西。我希望我能帮上忙。与您的项目一切顺利。 – vader