2012-03-23 237 views
0

我想堆疊圖像視圖旁邊(70%重疊)。我使用了一個frameLayout,並給了每個elemnet填充10個。它的工作原理,但是這個填充在處理事件時會殺死我。有沒有更好的方式重疊視圖(使用不同的佈局..等)?我開發的Android 2.3堆疊重疊的圖像視圖

<RelativeLayout android:layout_height="fill_parent" 
android:layout_width="fill_parent" > 

    <FrameLayout  
    android:id="@+id/frameLayoutBottom"  
    android:layout_width="wrap_content"  
    android:layout_height="wrap_content"  
    android:layout_alignParentBottom="true"  
    android:layout_centerHorizontal="true" > 
    <ImageView   
    android:id="@+id/ivBottom1"   
    android:layout_width="wrap_content"   
    android:layout_height="wrap_content"   
    android:src="@drawable/c10" />  
    <ImageView  
    android:id="@+id/ivBottom2"   
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"       
    android:paddingLeft="10dp"   
    android:src="@drawable/c11" /> 

順便說一句,當我嘗試了保證金,而不是填充,圖像依然對的海誓山盟100%頂級

+0

通過處理事件意味着什麼?點擊事件? – 2012-03-23 14:12:56

+0

是或更具體的觸摸事件 – Snake 2012-03-23 14:53:16

回答

1

創建一個自定義的ViewGroup,在onLayout中展示它的子項。如果您搜索「自定義ViewGroup onLayout」,有相當多的例子。在一般情況下,onLayout方法重寫如下:

@Override 
protected void onLayout(boolean changed, int l, int t, int r, int b) {} 

內部的方法,你會希望使用getChildCount()和getChildAt(index)來獲取你的孩子的看法引用。一旦你有了它們,你可以使用l,t,r和b值來比較你ViewGroup的邊界,並找出佈局子項的位置。

一旦找到孩子並計算出他們想要的位置,就可以使用child.layout(l,t,r,b)將子視圖放入新的自定義ViewGroup中。

希望這會有所幫助。如果你真的需要破解成XML這一點,你可以嘗試以下方法:

<RelativeLayout  
android:layout_width="fill_parent"  
android:layout_height="fill_parent"> 
<ImageView 
android:id="@+id/spacer1"   
android:layout_width="10dp"   
android:layout_height="wrap_content" />   
<ImageView  
android:layout_width="wrap_content" 
android:layout_height="wrap_content"   
android:src="@drawable/whatever1" /> 
<ImageView  
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_toRightOf="id/spacer1"   
android:src="@drawable/whatever2" /> 
</RelativeLayout> 
+0

哦好的。這是有道理的,但是我試圖在XML佈局中做,而不是在代碼 – Snake 2012-03-23 14:41:28

+0

編輯答案,包括一種方式來完成與XML。基本上,您可以使用RelativeLayout並在1px gif的時代聲明一個「spacer」ala。 – drasticp 2012-03-23 16:10:20

+0

完美。感謝你的回答 – Snake 2012-03-24 04:22:45

2

我有這樣的佈局:

Hand of cards

我通過重載FrameLayout來創建手容器和ImageView來創建卡片。然後我可以決定他們如何以我想要的方式進行佈局。

+0

這就是我想要顯示的,但我需要一個指向某些代碼的指針來查看你的意思 – Snake 2012-03-23 14:40:50

+0

我沒有這臺計算機上的代碼。我回家後會發佈它。 – CaseyB 2012-03-23 14:43:54

+1

請做(我會讓它安息回答:) – Snake 2012-03-23 14:57:48