與您所寫的完全相同,爲具有特定偵聽器的每個元素製作分隔視圖。擴展View應該是足夠的解決方案 - 它爲您提供所需的接口(例如OnDragListener或OnClickListener),並讓您保持清晰的解決方案。
這似乎對我來說,真的很令人愉快的任務,你可以解決一步一步,通過TAKS任務,通過色差分量......
至於容器所有動物的部分,這取決於需求。如果在所有情況下,眼睛,耳朵,頭髮等都會在相同或比例的位置對於每個動物和您將該動物多於一次,那麼值得考慮自定義ViewGroup - 可能是RelativeLayout。
很難給你更精確的提示,因爲像我提到的那樣會有很多次要和主要的要求。例如,如果兩隻不同動物的眼睛圖像的大小不相等,我會將我的組件(而不是View
)擴展爲ImageView,這使我們具有縮放功能。
編輯:我不知道這將有可能完成它以這種方式,但我會嘗試做這樣的:
<RelativeLayout ...>
<!-- LAYER 1: Face - background -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="100"
android:gravity="center">
<custom.path.FaceBaseComponent
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="60"
android:src="@drawable/face_drawable"/>
</LinearLayout>
<!-- LAYER 1: Ears -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center">
<!-- Left ear -->
<custom.path.EarComponent
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="30"
android:src="@drawable/left_ear"/>
<!-- Filler -->
<View
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="40"/>
<!-- Right ear -->
<custom.path.EarComponent
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="30"
android:src="@drawable/right_ear"/>
</LinearLayout>
</RelativeLayout>
這可以幫助您節省之間的比例每個元素。繼續嘗試合併儘可能多的「圖層」(也許你可以把耳朵和眼睛放入單個的LinearLayout
?)。
你能舉出任何圖像爲例嗎?我希望看到這些組件的形狀及其排列。每個動物都有相同的方式嗎? –
@onka,是的,沒有,謝謝。 – Yurets