将ImageButton的默认背景设置为透明(使用AndroidX)

时间:2019-06-20 08:11:35

标签: android android-styles androidx android-imagebutton

我正在使用AndroidX支持库。我在清单中声明:

<application
        ...            

        android:theme="@style/AppTheme">

values.styles.xml中,我声明:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    ...

    <item name="android:imageButtonStyle">@style/MyImageButton</item>
</style>

<style name="MyImageButton" parent="Widget.AppCompat.ImageButton">
    <item name="android:background">@android:color/transparent</item>
</style>

然后我通过以下方式使用ImageButton:

<ImageButton
    android:id="@+id/image"
    android:layout_width="40dp"
    android:layout_height="40dp" />

不幸的是,我的ImageButton显示的是灰色背景,而不是透明的背景。我该怎么做才能解决它?

3 个答案:

答案 0 :(得分:1)

您需要替换此行

https://my-website.com/auth/admin/master/console/#state={constantly-changing-string}&session_state=xxx&code={another-constantly-changing-string}

使用

<item name="android:imageButtonStyle">@style/MyImageButton</item>

这也是@ {prince

给出的另一种方式

答案 1 :(得分:1)

在代码中将此行添加到

style="@style/MyImageButton"

所以

<ImageButton
    style="@style/MyImageButton"
    android:id="@+id/image"
    android:layout_width="40dp"
    android:layout_height="40dp" />

,或者您不想在所有按钮标签中添加样式,可以按照此answer更改默认按钮的样式。希望对您有帮助。尝试让我知道它是否有效。

谢谢。 编码愉快:)

答案 2 :(得分:0)

您可以将background中的ImageButton设置为null,如下所示:

<ImageButton
    android:id="@+id/image"
    android:layout_width="40dp"
    android:layout_height="40dp"
    android:background="@null" />

这将使您的ImageButton透明。