我正在尝试将图像视图堆叠在一起(70%重叠)。我使用了一个frameLayout并给每个elemnet填充为10.它工作但是这个填充在处理事件时杀了我。有没有更好的重叠视图方式(使用不同的layout..etc)?我正在为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 :(得分:2)
我有这个布局:
我通过重写FrameLayout创建手形容器和ImageView来创建卡片。然后我可以用任何我想要的方式来决定它们的布局。
答案 1 :(得分: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>