0

我的应用程序底部栏有这个布局:

在此处输入图像描述

但我想让它像这样:

在此处输入图像描述

实际上我可以,但我想要,这种布局适用于每个屏幕尺寸。事实上,左边的图标粘在左边,右边的图标粘在右边,两个中间的图标都在中间,但它们都保持着很好的距离。我不使用绝对值,我希望这个图标动态地改变他与其他人的距离。我的问题是如何布局它们以实现我的目标。

这是我本节的 xml:

 <LinearLayout
            android:id="@id/bar_l2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentRight="true"
            android:gravity="center_horizontal" >

            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@drawable/bottom_bar" >

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_alignParentLeft="true"
                    android:layout_alignParentRight="true"
                    android:gravity="center_horizontal"
                    android:orientation="horizontal" >

                    <LinearLayout
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content" >

                        <ImageView
                            android:id="@+id/imageView1"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:src="@drawable/bar1" />

                    </LinearLayout>

                    <LinearLayout
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content" >

                        <ImageView
                            android:id="@+id/imageView2"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:src="@drawable/bar2" />

                    </LinearLayout>

                    <LinearLayout
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content" >

                        <ImageView
                            android:id="@+id/imageView3"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:src="@drawable/bar3" />

                    </LinearLayout>

                    <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="match_parent" >

                        <ImageView
                            android:id="@+id/imageView4"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="center_horizontal"
                            android:src="@drawable/bar4" />

                    </LinearLayout>

                </LinearLayout>

            </RelativeLayout>

        </LinearLayout>
4

2 回答 2

2

这是你需要做的:

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal" xmlns:android="http://schemas.android.com/apk/res/android">

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/bottom_bar"
    android:gravity="center_horizontal"
    android:orientation="horizontal"
    android:padding="30dp" >

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/bar1" />

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/bar2" />

    <ImageView
        android:id="@+id/imageView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/bar3" />

    <ImageView
        android:id="@+id/imageView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:src="@drawable/bar4" />
</LinearLayout>

  • 我在这里所做的是将父 LinearLayout 的背景设置为背景图像,并将其方向设置为水平。最重要的是它的宽度为fill_parent。因此它将覆盖父级的整个宽度。填充将帮助您在图像视图之间添加所需的间距。

  • 要使其适合所有屏幕尺寸而不是填充,请使用android:weight属性。

希望能帮助到你 !

于 2013-05-02T07:26:44.923 回答
2

这工作正常

<LinearLayout
            android:id="@id/bar_l2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentRight="true"
            android:gravity="center_horizontal" >

            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@drawable/bottom_bar" >

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_alignParentLeft="true"
                    android:layout_alignParentRight="true"
                    android:gravity="center_horizontal"
                    android:orientation="horizontal" >

                    <LinearLayout
                        android:layout_width="0dp"
                        android:layout_weight="1"
                        android:layout_gravity="center"
                        android:layout_height="wrap_content" >

                        <ImageView
                            android:id="@+id/imageView1"
                           android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:src="@drawable/bar1" />

                    </LinearLayout>

                    <LinearLayout
                              android:layout_width="0dp"
                        android:layout_weight="1"
                        android:layout_gravity="center"
                        android:layout_height="wrap_content" >

                        <ImageView
                            android:id="@+id/imageView2"
                           android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:src="@drawable/bar2" />

                    </LinearLayout>

                    <LinearLayout
                              android:layout_width="0dp"
                        android:layout_weight="1"
                        android:layout_gravity="center"
                        android:layout_height="wrap_content" >

                        <ImageView
                            android:id="@+id/imageView3"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:src="@drawable/bar3" />

                    </LinearLayout>

                    <LinearLayout
                             android:layout_width="0dp"
                        android:layout_weight="1"
                        android:layout_gravity="center"
                        android:layout_height="match_parent" >

                        <ImageView
                            android:id="@+id/imageView4"
                           android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:layout_gravity="center_horizontal"
                            android:src="@drawable/bar4" />

                    </LinearLayout>

                </LinearLayout>

            </RelativeLayout>

        </LinearLayout>
于 2013-05-02T07:33:49.087 回答