<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会在项目中给我一个错误。

请帮助。


当前回答

将ImageButton的背景设置为XML中的@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>

其他回答

它工作,也保持按钮点击的视觉反馈,

android:backgroundTintMode="screen"

在编程上,它可以通过:

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

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

btn.setBackgroundDrawable(null);

不要忘记添加填充,它有助于显示按钮效果。添加填充来调整背景。

android:background="?android:selectableItemBackground"
android:padding="5dp"

背景设置为“@null”将使按钮在点击时无效。这将是更好的选择。

style="?android:attr/borderlessButtonStyle"

后来我发现这很有用

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

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