531
<ImageButton android:id="@+id/previous"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/media_skip_backward"
android:background="@drawable/transparent"></ImageButton>

这就是我试图获得一个透明的 ImageButton 以便将这些按钮放在 SurfaceView 上的原因。但是,只要我在 xml 中包含透明行,Eclipse 就会在项目中给我一个错误。

请帮忙。

4

21 回答 21

1044

尝试使用 null 作为背景...

android:background="@null"
于 2010-08-04T05:17:43.253 回答
356

不要使用 TRANSAPENT 或 NULL LAYOUT,因为这样按钮(或通用视图)在单击时将不再突出显示!!!

我遇到了同样的问题,最后我从 Android API 中找到了正确的属性来解决问题。它可以应用于任何视图。

在按钮规范中使用它:

android:background="?android:selectableItemBackground"
于 2013-08-30T15:55:55.590 回答
143

您还可以使用透明颜色:

android:background="@android:color/transparent"
于 2011-07-09T04:04:49.237 回答
117

将背景设置为"@null"将使按钮在单击时无效。这将是一个更好的选择。

style="?android:attr/borderlessButtonStyle"

后来我发现使用

android:background="?android:attr/selectableItemBackground"

也是一个很好的解决方案。您可以以自己的风格继承此属性。

于 2013-04-19T03:59:51.417 回答
14

在运行时,您可以使用以下代码

btn.setBackgroundDrawable(null);
于 2012-01-18T10:00:34.553 回答
11

我相信公认的答案应该是: android:background="?attr/selectableItemBackground"

这与@lory105 的答案相同,但它使用支持库以实现最大兼容性(android:等效仅适用于 API >= 11)

于 2016-01-28T23:46:39.680 回答
10

如果您需要点击动画,请不要使用 null 或 transparent。更好的:

//Rectangular click animation
android:background="?attr/selectableItemBackground"

//Rounded click animation
android:background="?attr/selectableItemBackgroundBorderless"
于 2020-06-20T00:42:16.370 回答
8

删除此行:

android:background="@drawable/transparent">

在你的活动课集中

ImageButton btn = (ImageButton)findViewById(R.id.previous);
btn.setAlpha(100);

您可以将 alpha 级别设置为 0 到 255

o 表示透明,255 表示不透明。

于 2010-08-04T05:25:34.970 回答
5

最好的方法是使用透明色码

android:background="#00000000"

使用颜色代码#00000000 使任何东西透明

于 2014-10-11T11:26:28.270 回答
2

使用ImageView...默认情况下它具有透明背景...

于 2012-02-23T13:31:18.227 回答
2

我已经在背景中添加了一些东西,所以这对我有用:

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

(Android Studio 3.4.1)

编辑:仅适用于 android api 级别 21 及以上。为了兼容性,请改用它

   android:background="@android:color/transparent"
于 2019-06-15T16:46:27.100 回答
2

通过将背景设置为透明,您可以使用以下代码正常工作:

<ImageButton 
android:id="@+id/previous"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/media_skip_backward"
android:background="transparent"></ImageButton>
于 2021-07-04T03:31:49.320 回答
1

用这个:

<ImageButton
 android:id="@+id/back"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:background="@null"
 android:padding="10dp"
 android:src="@drawable/backbtn" />
于 2015-02-04T09:20:24.690 回答
1

使用"@null"。它对我有用。

<ImageButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:srcCompat="@drawable/bkash"
    android:id="@+id/bid1"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:background="@null" />
于 2017-04-11T12:32:27.090 回答
1

在 XML 中将 ImageButton 的背景设置为 @null

<ImageButton android:id="@+id/previous"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/media_skip_backward"
android:background="@null"></ImageButton>
于 2017-02-14T09:55:28.643 回答
1

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

<ImageButton
    android:id="@+id/imageButton"
    android:src="@android:drawable/ic_menu_delete"
    android:background="@android:color/transparent"
/>
于 2019-03-05T14:12:29.340 回答
1

它可以工作并且还保持按钮单击的视觉反馈,

android:backgroundTintMode="screen"
于 2021-11-28T02:48:31.390 回答
0

这是以编程方式将背景颜色设置为透明

 ImageButton btn=(ImageButton)findViewById(R.id.ImageButton01);
 btn.setBackgroundColor(Color.TRANSPARENT);
于 2015-02-20T20:58:08.547 回答
0

以编程方式可以通过以下方式完成:

image_button.setAlpha(0f) // to make it full transparent
image_button.setAlpha(0.5f) // to make it half transparent
image_button.setAlpha(0.6f) // to make it (40%) transparent
image_button.setAlpha(1f) // to make it opaque
于 2014-08-05T09:32:20.430 回答
0

在您的 XML 中将Background属性设置为任何颜色White(#FFFFFF)阴影或Black(#000000)阴影。如果您想要透明度,只需在实际哈希码之前放置 80。

#80000000   
于 2016-09-05T08:46:44.703 回答
-2
<ImageButton
    android:id="@+id/previous"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/media_skip_backward">
</ImageButton>

我使用了透明pngImageButton,并且ImageButton工作正常。

于 2011-11-05T07:54:02.773 回答