如何拥有透明的ImageButton:Android

时间:2010-08-04 05:15:19

标签: android transparent imagebutton surfaceview

<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就会在项目中出现错误。

请帮忙。

20 个答案:

答案 0 :(得分:936)

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

android:background="@null"

答案 1 :(得分:272)

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

  

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

在按钮规格中使用:

android:background="?android:selectableItemBackground"

答案 2 :(得分:134)

您还可以使用透明色:

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

答案 3 :(得分:108)

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

style="?android:attr/borderlessButtonStyle"

后来我发现使用

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

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

答案 4 :(得分:14)

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

btn.setBackgroundDrawable(null);

答案 5 :(得分:11)

我认为接受的答案应该是: android:background="?attr/selectableItemBackground"

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

答案 6 :(得分:7)

删除此行:

android:background="@drawable/transparent">

并在您的活动类集

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

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

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

答案 7 :(得分:5)

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

android:background="#00000000"

使用颜色代码#00000000使任何事物透明

答案 8 :(得分:4)

如果您需要单击动画,请不要使用null或透明。更好:

#include <cassert>
#include <utility>

template <typename T>
void run(T&& a)
{
  T b {std::forward<T>(a)};
  ++b;
  assert(b == a);
  assert(&a == &b);
}

int main()
{
  int value {10};
  run(value); // asserts work, not expected
  // run(std::move(value)); // the asserts don't work as expected
}

答案 9 :(得分:1)

您可以通过将背景设置为透明来使用以下代码:

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

答案 10 :(得分:1)

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

<ImageButton
    android:id="@+id/imageButton"
    android:src="@android:drawable/ic_menu_delete"
    android:background="@android:color/transparent"
/>

答案 11 :(得分:1)

使用&#34; @ null&#34; 。它对我有用。

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

答案 12 :(得分:1)

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

'main_class_functions_1' is not a package

答案 13 :(得分:1)

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

答案 14 :(得分:0)

在您的XML集Background属性中添加任何颜色White(#FFFFFF)阴影或Black(#000000) shade。如果您希望透明度在实际哈希代码之前放置80。

#80000000   

答案 15 :(得分:0)

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

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

答案 16 :(得分:0)

使用此:

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

答案 17 :(得分: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

答案 18 :(得分:0)

我已经在后台添加了一些东西,所以,这对我有用:

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

(Android Studio 3.4.1)

答案 19 :(得分:-2)

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

我为png使用了透明ImageButton,而ImageButton使用了透明{。}}。