我需要设计一个水平方向有五个ImageViews
的布局。
我可以通过基本的LinearLayout
来实现我的想法,但我想要一个如下图所示的设计模式:
注意:所有ImageViews
都采用椭圆形设计。
有什么想法吗?
答案 0 :(得分:1)
您可以使用负边距重叠LinearLayout
中的项目,但不会按此顺序堆叠。
您可以使用RelativeLayout
代替。您可以从外到内布置物品以达到所需的堆叠顺序。
这是一个固定宽度的例子:
<RelativeLayout android:layout_width="150dp" android:layout_height="wrap_content">
<ImageView
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentLeft="true" android:layout_centerVertical="true" />
<ImageView
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentRight="true" android:layout_centerVertical="true" />
<ImageView
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentLeft="true" android:layout_centerVertical="true"
android:layout_marginLeft="25dp" />
<ImageView
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentRight="true" android:layout_centerVertical="true"
android:layout_marginRight="25dp" />
<ImageView
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_centerHorizontal="true" android:layout_centerVertical="true" />
</RelativeLayout>
如果您没有固定宽度的容器,则必须使用此方法计算代码中的边距。
当然,如果你没有固定的宽度,你仍然需要某种类型的代码,因为没有任何内置于android中的东西,这对于这种类型的的事情。
答案 1 :(得分:1)
您可以使用RelativeLayout
执行此任务。这是一个例子:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/img1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="-18dp" />
<ImageView
android:id="@+id/img2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/img1"
android:layout_marginRight="-18dp" />
<ImageView
android:id="@+id/img5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/img4"
android:layout_marginRight="-18dp"/>
<ImageView
android:id="@+id/img4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/img3"
android:layout_marginRight="-18dp" />
<ImageView
android:id="@+id/img3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/img2"
android:layout_marginRight="-18dp" />
</RelativeLayout>
请注意,在这里,最后一个ImageView
是最重要的{。}}。
答案 2 :(得分:0)
您正在寻找开发Carousel类型的小部件。你可以在android中引用任何Carousel实现。有许多可用,你可以在这里参考一个 https://code.google.com/p/carousel-layout-android/