该应用程序的主要目的是为学生提供教育课程。 我有两个演员:
第1阶段: 实施拖放编辑器
到目前为止,我已经能够创建新的视图(ImageViews TextViews等)&把它们放在新的布局中。
但是一旦我放弃它们,我就再也无法控制它们了。现在我被限制在一种布局风格,我不想要。我想达到 android studio布局编辑器的水平,我可以在其中添加视图,更改位置,大小等。
第2阶段: 保存布局 您会建议一种方法来保存要向学生显示的布局数据。 JSON? XML?
阶段3: 解析布局数据
我已经实现了XML解析器并使用我在android studio中创建的布局对其进行了测试。但是,根据您的建议,我可能会改变我解析课程的方式。
拖动& DropLayout编辑器 - 讲师布局 - 学生布局 - Android Studio
答案 0 :(得分:0)
我建议如下:
为可以删除的所有小部件创建自定义视图(LinearLayout
,ImageView
等)。让他们全部实现以下界面:
interface Layout {
Layout getLayout();
LayoutEditor getLayoutEditor();
}
其中Layout
是该视图布局(XML或JSON)的可序列化表示,LayoutEditor
是另一个可用于修改View
上的属性的接口( layout_width,layout_height background等)
因此,在您拖放小部件以说明应用程序画布之后,您将获得实现Layout
接口的视图的视图层次结构。只需递归地遍历此树并在每个视图上调用getLayout()
并将Layout
层次结构拼接在一起。然后您可以将其序列化并保存。
您反序列化保存的Layout
并遍历布局树并使用它重新创建View层次结构。
查看proteus的某些动向。这使用JSON布局来扩充原生Android视图。