我正在嘗試在 Android 上復制以下布局(帶有文本的框和在專用部分向外延伸的線)

很明顯,這些盒子可以實作為單獨的視圖(或可繪制的),其形狀為
.
很明顯,這些盒子需要有一定的靈活性,才能讓“電線”從它們出來,最重要的是決定線路的“轉折”點。我想到了一些方法來實作這一點:
- 只需使用可繪制的影像并將文本框定位在確切位置即可實作整個布局
- 使用專用視圖實作這一點,以便將文本框定位在任何位置并與所有螢屏尺寸兼容。
我傾向于嘗試#2,但不知道從哪里開始。起初,我無法決定是否應該使用 ViewGroup 作為基類并添加 TextView 和普通視圖作為子類,還是應該使用單個 View 來實作它?我擔心的第二件事是,我是否想得太多,是否有一種簡單的方法可以實作相同的目標(只是為了節省時間,僅此而已)?
任何幫助/指導材料都非常感謝。提前致謝。
uj5u.com熱心網友回復:
我認為從長遠來看,方法#2 會更好。由于影像的性質,您必須保持縱橫比;否則,人會被拉伸。因為您要保持縱橫比(至少是人物部分),所以每個文本框和端點的位置可以表示為距邊緣或中心線的百分比距離。
假設您顯示的影像是整個影像,則可以將腹部端點設定為距左邊緣距離的 45%,也可以設定為距頂部距離的 42%。文本框也可以同樣放置。一旦放置了文本框和端點,線條就可以簡單地連接它們。現在影像可以拉伸到任意尺寸以支持多種螢屏尺寸,并且只要尊重縱橫比,并且看起來不錯。
看看ConstraintLayout及其百分比準則和障礙。還有一些徑向放置可能會有所幫助。您可能仍然需要使用少量代碼來支持布局,但ConstraintLayout應該能夠為您提供 95% 的解決方案。
編輯:我的意思是提到可能對你最有幫助的偏見。這是一個將偏差用于棋盤解決方案的示例,可能有用。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/422506.html
標籤:
上一篇:如何在畢加索上加載影像?
