我正在使用要在其中添加图像视图的Web视图。如何将此图像视图的背景设置为透明?

我已经尝试过:

mImageview.setBackgroundResource(R.color.trans);


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

评论

这可以为您提供帮助:stackoverflow.com/questions/5445085 / ...

#1 楼

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

#80000000


,这会将您想要的任何颜色更改为透明的颜色。。::

评论


@Harshad:是否可以使用View.setBackgroundResource(R.drawable.something)将背景图像设置为40%的透明度?

–路易斯·弗洛里特(Luis A. Florit)
2013年1月14日在2:21



@ LuisA.Florit我找到了此链接,您需要在其中乘以0.4(40/100)至RGB值。不知道这是否有帮助,但是您可以尝试一下。 forums.esri.com/Thread.asp?c=93&f=1730&t=223940

– Harshad
13年1月14日在12:30

@Harshad:对不起,我不明白你的回答。我没有任何RGB值,但是TextView的背景图像是我想要的,例如50%透明。但是,无论如何,我在stackoverflow中找到了答案:View.getBackground()。setAlpha(50)。再简单不过了吧? :o)无论如何,谢谢您的帮助!

–路易斯·弗洛里特(Luis A. Florit)
13年1月14日在22:32



如果您在实际哈希码之前添加01到99之间的任何数字,它将为您提供透明度。例如:透明度较高的黑色-#10000000透明度较低的黑色-#99000000

– AnhSirk Dasarp
13年2月6日在7:12

@AnhSirkDasarp不仅从01到99,由于其余数字也是十六进制,因此您可以输入从00到ff的任何值。对于百分之五十的透明度,您应该输入80而不是50,对于其他透明度,您需要执行一些基本计算...

– Nemanja Kovacevic
13年2月18日在11:29

#2 楼

您可以通过在XML中添加以下代码来设置任何布局,任何视图或任何组件的背景透明:

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


评论


我在较旧版本的Android上遇到了一个问题,该问题无法将#ff000000视为纯透明。使用此修复它。

–loeschg
13年3月15日在15:05

可能是因为#FF 00 00 00 = 100%黑色。

– Derk-Jan
2013年9月9日20:30在

@Ioeschg前2个字母用于alpha通道。 #00xxxxxx将是透明的,而x是您想要的任何十六进制值。

–user1032613
13-10-23在15:29

如果有人感兴趣,以编程方式进行的等效操作是Android.Resource.Color.Transparent :)

–leone boaventura
14-10-23在9:01

@undroid尝试android:background =“#00ffffff”

– ban-geoengineering
2015年6月11日14:50在

#3 楼

除了Harshad提到的内容:

两个十六进制字符可以附加到任何十六进制颜色代码中。 8位十六进制颜色代码中的前两个字符表示其在Android中的不透明度。

两个十六进制字符的范围从00到FF。例如,


普通不透明黑色十六进制-“#000000”完全不透明-“#FF000000”
50%透明-“#7F000000”

通过这种方式,您可以将任何颜色更改为任何级别的透明度。

从百分比中查找十六进制前缀:

将百分比数字除以100,再乘以255,即可得到十进制值。在此处将十进制转换为十六进制。

例如,对于50%,50/100 * 255 =127。使用链接,我们得到十六进制值7F。

来源:Android :如何创建透明或不透明背景

评论


实际上,完美的50%透明度是7F,而不是80;)

– shinyuX
14年4月30日在16:32

#4 楼

如果要增加20%或30%的透明度,则应在十六进制代码之前附加两个字符,例如CC。
注意
XML中的android:background="#CCFF0088"
,CC是字母值,FF是红色因子,00是绿色因子,88是蓝色因子。
一些不透明度代码:
十六进制不透明度值
100% — FF
95% — F2
90% — E6
85% — D9
80% — CC
75% — BF
70% — B3
65% — A6
60% — 99
55% — 8C
50% — 80
45% — 73
40% — 66
35% — 59
30% — 4D
25% — 40
20% — 33
15% — 26
10% — 1A
5%  — 0D
0% —  00

您还可以通过编程方式设置不透明度像:
yourView.getBackground().setAlpha(127);

将不透明度设置为0(完全透明)到255(完全不透明)之间。 127.5恰好是50%。
您可以使用给定的公式创建任何级别的透明度。如果您想半透明:
 16 |128          Where 128 is the half of 256.
    |8 -0         So it means 80 is half transparent.

并获得25%的透明度:
16 |64            Where 64 is the quarter of 256.
   |4 -0          So it means 40 is quarter transparent.


#5 楼

对黑色使用下面的代码:
<color name="black">#000000</color>

现在,如果要使用不透明性,则可以使用以下代码:
<color name="black">#99000000</color>

,下面对不透明性代码:
100% — FF
95% — F2
90% — E6
85% — D9
80% — CC
75% — BF
70% — B3
65% — A6
60% — 99
55% — 8C
50% — 80
45% — 73
40% — 66
35% — 59
30% — 4D
25% — 40
20% — 33
15% — 26
10% — 1A
5% — 0D
0% — 00


#6 楼

已经有一个预定义的常数。使用Color.TRANSPARENT

评论


使用常量应该是最好/最简单的方法!但是在这种情况下,Color.TRANSPARENT的值设置为0x00000000(而不是预期的完全不透明的0xFF000000),因此,根据您的操作方式,此常数可能并不能真正帮助实现透明度!仍然推荐常数为+1!


2015年2月5日在10:13



#7 楼

Android中已经内置了一个透明文件:R.color.transparent。 http://developer.android.com/reference/android/R.color.html#transparent

但是我想您可能想使放置在WebView中的图像背景透明,例如,使用透明的PNG而不是ImageView背景。如果实际图像完全不透明,则无法通过它查看ImageView背景。

评论


图像是透明的..它没有任何背景..我也尝试过设置图像视图背景,如您说的。.但是它没有用...请帮助。

– Mudit
09年10月1日在10:53

您是否可以发布更多详细信息,例如指向所使用图像的链接以及所使用的代码和布局?

–复杂度
09年10月1日在11:18

#8 楼

如果您希望在代码中使用它,只需:

mComponentName.setBackgroundColor(Color.parseColor("#80000000"));


#9 楼

试试这个代码:)

这是一个完全透明的十六进制代码-“#00000000”

#10 楼

在您的XML文件中,设置属性“ Alpha”

,例如

android:alpha="0.0" // for transparent
android:alpha="1.0" // for opaque


您可以将0.0到1.0之间的任何值指定为十进制应用所需的透明度。例如,0.5透明度是禁用组件的理想选择

#11 楼

或者,也可以使用以下代码解析资源ID:

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


#12 楼

对于仍然面临此问题的人,您可以尝试以下
element.getBackground().setAlpha(0);

评论


我得到一个NullPointerException:尝试在空对象引用上调用虚拟方法'void android.graphics.drawable.Drawable.setAlpha(int)'

– IgorGanapolsky
2015年9月8日在17:56



@IgorGanapolsky:尝试观察您的元素是否为空对象

–MRSuicideSheep
2015年9月9日在2:48

#13 楼

一种更简单的方法:

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


#14 楼

使用以下命令获得完全透明:

#00000000


当我尝试使用#80000000时,得到了黑色的不需要的透明覆盖层。尝试更改前两位数字;它可以控制透明度,例如

#00000000
#10000000
#20000000
#30000000


评论


透明深色上的完美色彩

–纳吉(Najib Ahmed Puthawala)
2015年9月11日10:40在

#15 楼

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



评论


只需单击它。 @彼得·莫滕森

–Jayakrishnan
17年5月1日下午5:03

#16 楼

我遇到的另一个工作选项是设置android:background="@null"

#17 楼

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

0将是透明的,1是完全可见的。 ;)

评论


这会更改视图的Alpha,而不是背景!

– IgorGanapolsky
2015年9月8日于17:57

这样,整个视图将是透明的,其中包括内容/图片,您设置的Alpha在这种情况下是错误的。用户希望保持图像的透明度,而不是将图像更改为透明。

– Haroun Hajem
20年1月17日在23:10

#18 楼

尝试使用以下代码。它会为您提供更多或更多的帮助。




.xml文件旨在使用此代码设置背景色:

android:background="#000000"




android:background="#FFFFFF"




也可以通过编程方式进行设置。


还可以通过编程方式使用此代码:

image.setBackgroundDrawable(getResources().getDrawable(
    R.drawable.llabackground));



也可以通过编程方式设置背景色的代码:

image.setBackgroundColor(Color.parseColor("#FFFFFF"));



以下代码以编程方式相同:

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



颜色取决于您的选择您想要使用哪种颜色的透明色。通常使用白色或#FFFFFF颜色。关于R.drawable.llabackground:此代码行适用于您的背景样式,例如特殊或不同的用途。您也可以使用它。

#19 楼

如果使用可绘制的XML图像,则可以使其透明,如下图所示,也可以使用颜色代码:

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




#20 楼

带有透明度信息的颜色定义可以采用

#AARRGGBB#ARGB的形式。

也可以使用较短的值表示完全透明:
#0000。 />
其他值例如:

white  grey   black
#FFFF  #F888  #F000 - full color
#EFFF  #E888  #E000
#DFFF  #D888  #D000
#CFFF  #C888  #C000
#BFFF  #B888  #B000
#AFFF  #A888  #A000
#9FFF  #9888  #9000
#8FFF  #8888  #8000
#7FFF  #7888  #7000
#6FFF  #6888  #6000
#5FFF  #5888  #5000
#4FFF  #4888  #4000
#3FFF  #3888  #3000
#2FFF  #2888  #2000
#1FFF  #1888  #1000
#0FFF  #0888  #0000 - full transparency


#21 楼

ImageView.setBackground(R.drawable.my_background);

ImageView.setBackgroundResource(R.color.colorPrimary);

ImageView.getImageAlpha();

ImageView.setAlpha(125); // transparency


评论


尽管此代码可能有助于解决问题,但并未解释为什么和/或如何回答问题。提供这种额外的环境将大大提高其长期价值。请编辑您的答案以添加解释,包括适用的限制和假设。

– Toby Speight
16年11月3日在22:19

#22 楼

尝试以下操作:

#aa000000


对于透明度000000 =黑色,可以将这六个数字更改为所需的颜色。

评论


你要在六进制颜色前使用aa的资源是什么

– Mina Fawzy
15年11月12日在11:26

#23 楼

在xml中
@android:color/transparent

在代码中
mComponentName.setBackgroundResource(android.R.color.transparent);