Android:ImageButton不匹配父整体大小

时间:2015-09-02 22:02:40

标签: android xml

我有一个带有LinearLayout的工具栏(我将LinearLayout背景画成黑色,这样你就可以更好地看到它)。在LinearLayout内部,我有3个ImageButtons。

enter image description here

正如你所看到的,在android studio图形编辑器中我选择了第一个按钮,并且通过所选区域,我们可以看到高度与LinearLayout高度匹配,宽度是工具栏宽度的1/3 , 没关系!

然而,ImageButton本身(带有播放图像的灰色区域)与所选区域不匹配,似乎有一些填充,这就是我想要解决的问题!

我想要这个(对于三个按钮):

enter image description here

这是我的工具栏xml:

<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar_bottom"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:contentInsetLeft="0dp"
app:contentInsetStart="0dp"
android:elevation="4dp"
android:layout_alignParentBottom="true">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:weightSum="3"
    android:background="@android:color/black"
    android:orientation="horizontal">

    <ImageButton
        android:id="@+id/playButton"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:scaleType="center"
        android:clickable="true"
        android:src="@drawable/ic_play" />

    <ImageButton
        android:id="@+id/stopButton"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:scaleType="center"
        android:clickable="true"
        android:src="@drawable/ic_stop" />

    <ImageButton
        android:id="@+id/bookmarkButton"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:scaleType="center"
        android:clickable="true"
        android:src="@drawable/ic_bookmark" />

</LinearLayout>


</android.support.v7.widget.Toolbar>

我尝试了什么:

android:padding="0dp"中设置LinearLayout ..但没有改变。

2 个答案:

答案 0 :(得分:4)

尝试将此样式添加到您的ImageButton,希望这是您想要的

style="?android:attr/borderlessButtonStyle"
像这样

<ImageButton
    android:id="@+id/playButton"
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:scaleType="center"
    android:clickable="true"
    android:src="@drawable/ic_play"
    style="?android:attr/borderlessButtonStyle"/>

答案 1 :(得分:0)

更改

android:scaleType="centerCrop"

并添加

android:background="@android:color/transparent" 

为每个ImageButton

<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/toolbar_bottom"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minHeight="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    app:contentInsetLeft="0dp"
    app:contentInsetStart="0dp"
    android:elevation="4dp"
    android:layout_alignParentBottom="true">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:weightSum="3"
        android:background="@android:color/black"
        android:orientation="horizontal">

        <ImageButton
            android:id="@+id/playButton"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="@android:color/transparent"
            android:scaleType="centerCrop"
            android:clickable="true"
            android:padding="0dp"
            android:src="@drawable/ic_action_email" />

        <ImageButton
            android:id="@+id/stopButton"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:scaleType="centerCrop"
            android:clickable="true"
            android:background="@android:color/transparent"
            android:src="@drawable/ic_action_email_blue" />

        <ImageButton
            android:id="@+id/bookmarkButton"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:scaleType="centerCrop"
            android:clickable="true"
            android:background="@android:color/transparent"
            android:src="@drawable/ic_action_email" />

    </LinearLayout>


</android.support.v7.widget.Toolbar>