在Android上设置imageview的透明背景

时间:2009-09-29 13:27:50

标签: android android-widget

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

我试过这个:

mImageview.setBackgroundResource(R.color.trans);

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

26 个答案:

答案 0 :(得分:528)

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

#80000000

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

答案 1 :(得分:509)

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

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

答案 2 :(得分:163)

除了Harshad所说的:

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

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

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

这样您可以将任何颜色更改为任何透明度。

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

将百分比数除以100并乘以255得到小数值。将小数转换为十六进制here

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

来源: Android: how to create a transparent or opaque background

答案 3 :(得分:120)

如果要添加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.

答案 4 :(得分:30)

使用以下代码为黑色:

graceful-fs

现在,如果您想使用不透明度,则可以使用以下代码:

<color name="black">#000000</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

答案 5 :(得分:25)

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

答案 6 :(得分:24)

将此代码用于透明色

object

答案 7 :(得分:23)

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

但我认为您可能希望将放置到WebView中的图像的背景透明化,例如,使用透明的PNG,而不是ImageView背景。如果实际图像根本没有透视,则无法通过它看到ImageView背景。

答案 8 :(得分:16)

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

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

答案 9 :(得分:7)

或者,作为替代方案,使用以下代码解析资源ID:

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

答案 10 :(得分:6)

试用此代码:)

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

答案 11 :(得分:6)

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

答案 12 :(得分:6)

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

,例如

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

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

答案 13 :(得分:4)

使用以下内容实现完全透明:

#00000000

当我尝试#80000000时,我得到了一个我不想要的黑色透明覆盖层。尝试更改前两位数字;它控制透明度,如

#00000000
#10000000
#20000000
#30000000

答案 14 :(得分:4)

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

答案 15 :(得分:4)

一种更简单的方法:

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

答案 16 :(得分:2)

尝试使用以下代码。它会帮助你完整或更多。

  1. 一个.xml文件,旨在使用此代码设置背景颜色:

    android:background="#000000"
    

    android:background="#FFFFFF"
    

    Image is here

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

  2. 您也可以通过编程方式使用此代码:

    image.setBackgroundDrawable(getResources().getDrawable(
        R.drawable.llabackground));
    
  3. 此代码也用于以编程方式设置背景颜色:

    image.setBackgroundColor(Color.parseColor("#FFFFFF"));
    
  4. 此编码相同的代码:

    image.setBackgroundColor(getResources().getColor(Color.WHITE));
    
  5. 颜色取决于您选择要用于透明的颜色。大多使用白色或#FFFFFF颜色。

    关于R.drawable.llabackground:这行代码是针对您的背景风格的,例如针对您的目的的特殊或不同的内容。你也可以使用它。

答案 17 :(得分:2)

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

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

Enter image description here

答案 18 :(得分:2)

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

Android Adjust Color Opacity

答案 19 :(得分:2)

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

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

答案 20 :(得分:1)

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

#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 :(得分:0)

ImageView.setBackground(R.drawable.my_background);

ImageView.setBackgroundResource(R.color.colorPrimary);

ImageView.getImageAlpha();

ImageView.setAlpha(125); // transparency

答案 22 :(得分:0)

试试这个:

#aa000000

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

答案 23 :(得分:0)

在xml中

@android:color/transparent

在代码中

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

答案 24 :(得分:0)

使用在 .并在顶部 imageView 上设置透明度代码。

透明代码:

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

答案 25 :(得分:0)

使用任何在线工具将百分比转换为十六进制只需将其添加到颜色值的前面

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

enter image description here

80% 的不透明度是

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