java - Android 中 4 个图标的动态布局,这些图标之间必须保持合理的距离

标签 java android android-layout

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

enter image description here

但我想让它像这样:

enter image description here

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

这是我本部分的 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>

最佳答案

这就是你需要做的:

<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 。 因此它将覆盖父级的整个宽度。Padding 将帮助您在 ImageView 之间添加所需的间距。

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

希望对你有帮助!

关于java - Android 中 4 个图标的动态布局,这些图标之间必须保持合理的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16332257/

相关文章:

java - Java中如何比较两个相同对象的数据

java - SonarQube v5.6+ 与 Java 插件 v42 摘要 View 和详细 View 之间的严重性评级不一致

Android:使用底部或其他一些类似于 css background-position 的对齐方式绘制平铺位图

android - 如何在 firebase 中获取与当前用户关联的帐户

java - 在 libgdx 游戏中将 GoogleMap 显示为 fragment

java - FastCGI 和 Java Servlet API 之间的区别

java - Jtable与mysql连接时出错 "java.lang.NullPointerException"

android - ListView 涵盖了它下面的所有内容

android - 设置 OnClickListener 时出现 NullPointerException

android-layout - 使用媒体查询的设备布局 - 手机纵向,平板电脑