2017-03-07 27 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