在Android上设置ImageView的透明背景

392
我正在使用一个 WebView,在其中添加一个 ImageView。如何将这个 ImageView 的背景设置为透明?
我尝试过以下代码:
```java imageView.setBackgroundColor(0x00000000); ```
但是它没有起作用。
mImageview.setBackgroundResource(R.color.trans);

其中 trans<color name="trans">#00000000 </color>


这可以帮助您:https://dev59.com/32035IYBdhLWcg3wZvFg#11019879 - Martin Stanimirov
我设置了#00000000,它完全透明。也许你的代码中还有其他错误? - sucicf1
25个回答

13

在xml中

@android:color/transparent

在代码中

mComponentName.setBackgroundResource(android.R.color.transparent)

12

或者,作为另一种选择,使用以下代码解析资源ID:

  mComponentName.setBackgroundColor(getResources().getColor(android.R.color.transparent));

是否有类似于 androidx.R.color.transparent 的 AndroidX 等效项? - Erkan

6
在Android Studio中,使用内置工具调整颜色和透明度非常简单:

Android 调整颜色透明度


请点击它。@PeterMortensen - Jayakrishnan

5

对于仍然遇到此问题的人,您可以尝试这个方法:
element.getBackground().setAlpha(0);

该方法涉及IT技术相关内容。

我收到了一个 NullPointerException 错误:尝试在空对象引用上调用虚拟方法 'void android.graphics.drawable.Drawable.setAlpha(int)'。 - IgorGanapolsky
1
@IgorGanapolsky:尝试观察您的“element”,看看它是否为null对象。 - SuicideSheep

5

还有一种更简单的方法:

mComponentName.setBackgroundResource(android.R.color.transparent);

5
请使用以下内容以实现完全透明度:
#00000000

当我使用#80000000时,我得到了一个黑色透明的覆盖层,而我不想要这个效果。尝试更改前两位数字;它控制透明度的水平,例如:
#00000000
#10000000
#20000000
#30000000

完美的颜色在透明暗背景上。 - Najib.Nj

4
我发现另一个可行的工作选项是设置android:background="@null"

2

尝试使用以下代码。它将对您有所帮助。

  1. A .xml file designed to use this code to set background color:

    android:background="#000000"
    

    or

    android:background="#FFFFFF"
    

    Image is here

    Or you can set it programmatically as well.

  2. Also you can use this code programmatically:

    image.setBackgroundDrawable(getResources().getDrawable(
        R.drawable.llabackground));
    
  3. Also this code for setting the background color as well programmatically:

    image.setBackgroundColor(Color.parseColor("#FFFFFF"));
    
  4. This code for the same programmatically:

    image.setBackgroundColor(getResources().getColor(Color.WHITE));
    

颜色取决于您选择哪种颜色用于透明。大多数情况下使用白色或#FFFFFF颜色。

关于R.drawable.llabackground:这行代码是为了您的背景样式,比如为您的特定目的设计的某些特别或不同的东西。您也可以使用此功能。


2

您还可以使用View.setAlpha(float)来精确更改可见性。

0表示透明,1表示完全可见。;)


1
这会改变视图的透明度,而不是它的背景! - IgorGanapolsky
整个视图将变得透明,包括其中的内容/图片,你设置的 alpha 值是错误的。用户想要保持图像的透明度而不是使图像本身变透明。 - Haroun Hajem

2

如果您使用可绘制的XML图像,您可以将其设置为透明,如下图所示,或者您可以使用颜色代码:

<color name="black">#99000000</color> 

Enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接