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

我试过了:

mImageview.setBackgroundResource(R.color.trans);

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


当前回答

ImageView.setBackground(R.drawable.my_background);

ImageView.setBackgroundResource(R.color.colorPrimary);

ImageView.getImageAlpha();

ImageView.setAlpha(125); // transparency

其他回答

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

但是我认为你可能想要使你放在WebView中的图像的背景透明,例如,使用透明的PNG,而不是ImageView背景。如果实际的图像不是完全透明的,那么ImageView背景就不能通过它被看到。

将百分比转换为十六进制使用任何在线工具&而不是简单地添加在前面的颜色值

例如:使用https://www.joshuamiron.com/percent-to-hex-converter

80%的不透明度

 <color name="opaque_80_percent">#CC000000</color>

如果您想增加20%或30%的透明度,您应该在十六进制代码中预先添加两个字符,如CC。

Note

android:background="#CCFF0088

其中CC是alpha值,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.

如果你想在代码中使用它,只需:

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

除了哈沙德提到的:

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

两个十六进制字符,取值范围为00 ~ FF。例如,

普通不透明黑六角- "#000000" 全透明- "#00000000" 完全不透明- "#FF000000" 50%透明- "#7F000000"

这样你就可以改变任何颜色到任何级别的透明度。

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

百分数除以100,再乘以255,得到小数。这里把十进制转换成十六进制。

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

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