在Android上设置imageview的透明背景

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

我试过了:

mImageview.setBackgroundResource(R.color.trans);

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

871664 次浏览

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

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

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

#80000000

这将改变任何颜色,你想要一个透明的。:)

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

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

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

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

或者,作为替代,用下面的代码解析资源ID:

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

除了哈沙德提到的:

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

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

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

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

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

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

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

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

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

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

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

对于那些仍然面临这个问题的人,你可以试试这个 < / p >
element.getBackground().setAlpha(0);

使用以下方法实现完全透明:

#00000000

当我尝试使用#80000000时,我得到了一个我不想要的黑色透明覆盖。试着改变前两位数字;它控制着透明度,就像

#00000000
#10000000
#20000000
#30000000

还有一个更简单的方法:

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

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

请注意

XML中的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.

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

尝试使用下面的代码。它将帮助你完全或更多。

  1. 一个用于设置背景颜色的.xml文件:

    android:background="#000000"
    

    android:background="#FFFFFF"
    

    Image is here

    或者你也可以通过编程来设置它

  2. 你也可以通过编程方式使用这段代码:

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

The color depends on your choice of which color you want to use for transparent. Mostly use a white or #FFFFFF color.

Regarding R.drawable.llabackground: This line of code is for your style of the background, like something special or different for your purpose. You can also use this.

试试这个:

#aa000000

对于透明度000000 =黑色,您可以更改这六个数字为您想要的颜色。

黑色使用下面的代码:

<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
ImageView.setBackground(R.drawable.my_background);


ImageView.setBackgroundResource(R.color.colorPrimary);


ImageView.getImageAlpha();


ImageView.setAlpha(125); // transparency

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

Android Adjust Color Opacity .

如果你使用一个可绘制的XML图像,你可以使它透明如下图所示,或者你可以使用一个颜色代码:

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

Enter image description here

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

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

您可以给出十进制的0.0到1.0之间的任何值来应用所需的透明度。例如,0.5透明度对于禁用组件是理想的

试试这段代码:)

它是一个完全透明的六边形代码——“# 00000000”

带有透明信息的颜色定义可以在窗体中

#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

在xml中

@android:color/transparent

在代码中

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

使用RelativeLayout,其中有2个imageViews。并在顶部imageView上设置透明代码。

透明度代码:

<solid android:color="@color/white"/>
<gradient android:startColor="#40000000"   android:endColor="#FFFFFFFF" android:angle="270"/>

使用任何在线工具将百分比转换为十六进制&而不是简单地把它加在color value

前面

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

enter image description here

80%的不透明度

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