【问题标题】:How to align imagebutton with equel width in Linearlayout如何在Linearlayout中将imagebutton与equel宽度对齐
【发布时间】:2016-09-26 15:15:39
【问题描述】:

我有一个又一个带有 4 个图像按钮的线性布局。在具有水平方向并提供相等宽度的线性布局中。此处的按钮正确对齐,但这些按钮中的图像未正确对齐。

这是下面的代码,我试过了,这就是它的样子。如何使图像与正确的形状正确对齐?

  <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:orientation="horizontal"
    android:background="#fff"
    android:paddingLeft="10dp"
    android:paddingRight="10dp">
    <ImageButton
        android:id="@+id/add_fav_btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:minWidth="0dp"
        android:minHeight="0dp"
        android:scaleType="fitXY"
        android:layout_gravity="center"
        android:src="@drawable/ic_whatsapp"
        />

    <ImageButton
        android:id="@+id/id_share_fb_btn"
        android:src="@drawable/ic_whatsapp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:minWidth="0dp"
        android:minHeight="0dp"
        android:layout_gravity="center"
        android:scaleType="fitXY"/>
    <ImageButton
        android:id="@+id/id_share_all_btn"
        android:src="@drawable/ic_share"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:minWidth="0dp"
        android:minHeight="0dp"
        android:layout_gravity="center"
        android:scaleType="fitXY"/>
    <ImageButton
        android:id="@+id/id_whatsapp_btn"
        android:src="@drawable/ic_whatsapp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:minWidth="0dp"
        android:minHeight="0dp"
        android:layout_gravity="center"
        android:scaleType="fitXY"/>
</LinearLayout>

更新图片,更改android:layout_height="50dp" to android:layout_height="wrap_content"

【问题讨论】:

  • “没有正确对齐”是什么意思?你指的是拉伸吗?

标签: android html android-layout android-button


【解决方案1】:

您的图像看起来像正方形。您正在使它们伸展以填充整个宽度,但您使它们全部具有50dp 的高度。

将高度从 50dp 更改为

android:layout_height="wrap_content"

它们会根据宽度保持正确的高度。如果您希望它们都具有 50dp 的高度,您有两种选择:

  1. 将宽度设置为 50dp 并在父级中居中
  2. 创建"square button"

我不知道我是否明白这一点,如果没有在下面发表评论

【讨论】:

  • 您好,谢谢您的回复,我确实喜欢,我已经上传了新图片。静止图像看起来像被拉伸了,即水平拉伸超过垂直。
  • @Naruto 我仍然看到老问题 :( 你创建了方形按钮类吗?
  • @Naruto 什么都没有,现在我看到了正确的。你想让它们完全平方吗?
  • 是的,如果我使用左边的填充,那么它工作得很好......但我希望他们把它变成正确的正方形......无论如何?,请帮助
  • @Naruto 好的,所以使用我的“2”。解决方案:)
【解决方案2】:

把所有的每一个图片按钮都放在一个相对布局中,并且相对布局的layout_weight为1,layout_width= match_parent

我认为这可能有效......或尝试使用 imageview 而不是 imagebutton

<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:orientation="horizontal"
android:background="#fff"
android:paddingLeft="10dp"
android:paddingRight="10dp">
<RelativeLayout
    android:layout_weight="1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
<ImageButton
    android:id="@+id/add_fav_btn"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:minWidth="0dp"
    android:minHeight="0dp"
    android:scaleType="fitXY"
    android:layout_gravity="center"
    android:src="@drawable/ic_whatsapp"
    />
  </RelativeLayout>
  <RelativeLayout
    android:layout_weight="1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
<ImageButton
    android:id="@+id/id_share_fb_btn"
    android:src="@drawable/ic_whatsapp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:minWidth="0dp"
    android:minHeight="0dp"
    android:layout_gravity="center"
    android:scaleType="fitXY"/>
</RelativeLayout>
<RelativeLayout
    android:layout_weight="1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
<ImageButton
    android:id="@+id/id_share_all_btn"
    android:src="@drawable/ic_share"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:minWidth="0dp"
    android:minHeight="0dp"
    android:layout_gravity="center"
    android:scaleType="fitXY"/>
</RelativeLayout>
<RelativeLayout
    android:layout_weight="1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
<ImageButton
    android:id="@+id/id_whatsapp_btn"
    android:src="@drawable/ic_whatsapp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:minWidth="0dp"
    android:minHeight="0dp"
    android:layout_gravity="center"
    android:scaleType="fitXY"/>

【讨论】:

  • 为什么我们需要包含这么多的relativelayout?我认为这是不正确的方式
  • 你试过这个解决方案了吗?
猜你喜欢
  • 2015-07-02
  • 1970-01-01
  • 2023-03-18
  • 1970-01-01
  • 2011-11-26
  • 1970-01-01
  • 2013-01-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多