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

请帮助。


当前回答

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

btn.setBackgroundDrawable(null);

其他回答

不要使用透明或空布局,因为这样按钮(或通用视图)在点击时将不再突出显示!!

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

在按钮规范中使用这个:

android:background="?android:selectableItemBackground"

用这个:

<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" />

将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>

这是通过编程将背景颜色设置为透明

 ImageButton btn=(ImageButton)findViewById(R.id.ImageButton01);
 btn.setBackgroundColor(Color.TRANSPARENT);

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

android:backgroundTintMode="screen"