367

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

我试过这个:

mImageview.setBackgroundResource(R.color.trans);

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

4

25 回答 25

640

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

android:background="@android:color/transparent" 
于 2012-03-10T12:31:26.917 回答
612

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

#80000000

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

于 2011-07-29T12:50:17.603 回答
185

除了Harshad提到的:

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

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

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

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

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

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

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

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

于 2012-10-26T07:44:19.900 回答
178

如果要添加 20% 或 30% 的透明度,则应在十六进制代码前多加两个字符,例如 CC。

笔记

android:background="#CCFF0088"在 XML 中

其中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.
于 2015-03-03T08:26:41.213 回答
60

使用下面的黑色代码:

<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
于 2016-05-19T12:51:41.833 回答
29

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

于 2013-03-20T09:01:02.693 回答
25

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

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

于 2009-09-30T14:52:23.403 回答
20

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

mComponentName.setBackgroundColor(Color.parseColor("#80000000"));
于 2012-05-31T13:07:34.020 回答
19

试试这个代码:)

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

于 2018-04-11T05:14:57.177 回答
14

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

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

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

于 2017-06-11T03:43:31.050 回答
12

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

  mComponentName.setBackgroundColor(getResources().getColor(android.R.color.transparent));
于 2012-08-10T06:22:55.377 回答
6

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

Android 调整颜色不透明度

于 2017-01-26T03:30:01.263 回答
6

在xml中

@android:color/transparent

在代码中

mComponentName.setBackgroundResource(android.R.color.transparent)
于 2020-12-18T14:01:52.103 回答
5

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

于 2013-08-01T02:47:46.003 回答
5

使用以下内容以获得完全透明:

#00000000

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

#00000000
#10000000
#20000000
#30000000
于 2014-12-11T04:16:46.300 回答
5

一种更简单的方法:

mComponentName.setBackgroundResource(android.R.color.transparent);
于 2015-02-27T09:51:29.130 回答
4

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

于 2015-04-09T14:59:39.143 回答
2

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

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

于 2013-03-18T21:29:54.893 回答
2

尝试使用以下代码。它将全面或更多地帮助您。

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

    android:background="#000000"
    

    或者

    android:background="#FFFFFF"
    

    图片在这里

    或者您也可以以编程方式设置它。

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

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

    image.setBackgroundColor(Color.parseColor("#FFFFFF"));
    
  4. 此代码以编程方式相同:

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

颜色取决于您选择要用于透明的颜色。主要使用白色或#FFFFFF 颜色。

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

于 2015-05-27T12:53:37.763 回答
2

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

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

在此处输入图像描述

于 2017-03-05T05:54:08.090 回答
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
于 2020-01-31T21:00:24.530 回答
0

试试这个:

#aa000000

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

于 2015-06-07T04:45:08.730 回答
0
ImageView.setBackground(R.drawable.my_background);

ImageView.setBackgroundResource(R.color.colorPrimary);

ImageView.getImageAlpha();

ImageView.setAlpha(125); // transparency
于 2016-11-03T21:57:16.063 回答
0

使用具有 2 个 imageViews 的 RelativeLayout。并在顶部 imageView 上设置透明度代码。

透明度代码:

<solid android:color="@color/white"/>
<gradient android:startColor="#40000000"   android:endColor="#FFFFFFFF" android:angle="270"/>
于 2021-01-04T08:27:04.213 回答
0

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

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

在此处输入图像描述

80% 的不透明度将是

 <color name="opaque_80_percent">#CC000000</color>
于 2021-07-28T11:45:14.517 回答