Android多个动态图像对齐

时间:2017-07-04 22:32:01

标签: android image layout

现在,我有一个RecyclerView和多个CardView来显示我的项目。

我的CardView有一个RelativeLayout,我在其中添加了一些ImageViews(在这种情况下为3,但可以更多)。

我的每个项目都有一个要显示的图像列表,让我们假设#item1有Facebook,Twitter和Youtube,但#item2只有Facebook和Youtube图像。

我应该如何对齐图像?如果我只删除Twitter图像,我需要将我的Facebook图像的layout_toLeftOf更新为Youtube图像。

我想我不应该对我的所有物品做这种逻辑,它会超过权力......

示例图片: https://i.stack.imgur.com/uJZTi.png

fold_plant' (Stalk lef rig) = s (fold_plant' lef) (fold_plant' rig)

2 个答案:

答案 0 :(得分:0)

在这种情况下最好使用LinearLayout并使用layout_alignParentRight和layout_alignParentTop =“true”而不是android:layout_gravity =“end | top”如下所示:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:layout_alignParentRight="true"
                android:layout_alignParentTop="true">
                <ImageView android:background="@null"
                    android:id="@+id/facebook"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/facebook_icon"
                    android:layout_weight="1"/>
                <ImageView android:background="@null"
                    android:id="@+id/twitter"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/twitter_icon"
                    android:layout_weight="1"/>
                <ImageView android:background="@null"
                    android:id="@+id/youtube"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/youtube_icon"
                    android:layout_weight="1"/>
            </LinearLayout>

答案 1 :(得分:0)

你应该使用具有水平方向的LinearLayout!

<LinearLayout
 ...
  android:orientation="horizontal">

    //ImageViews in priority order

</LinearLayout>