在Android上设置imageview的透明背景

mud*_*dit 309 android android-widget

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

我试过这个:

mImageview.setBackgroundResource(R.color.trans);
Run Code Online (Sandbox Code Playgroud)

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

Har*_*had 543

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

#80000000
Run Code Online (Sandbox Code Playgroud)

这将改变你想要的任何颜色透明的.. :)

  • @AnhSirkDasarp不仅从01到99,因为其余的数字也是十六进制的,所以你可以把任何东西从00到ff.百分之五十透明你应该把80而不是50,而对于其他你有一些基本的计算要做... (64认同)
  • 如果在实际哈希码之前添加01到99之间的任何数字,它将为您提供透明度.例如:黑色透明度更高 - "#10000000"黑色,透明度更低 - "#99000000` (20认同)
  • @Harshad:对于使用`View.setBackgroundResource(R.drawable.something)`的背景图像集,是否可以设置40%的透明度? (3认同)
  • @Harshad:对不起,我不明白你的回答.我没有任何RGB值,但是带有我想要的背景图像的TextView,比如50%透明.但是,无论如何,我在stackoverflow中找到了答案:`View.getBackground().setAlpha(50)`.不能简单,对吧?:o)无论如何,谢谢你的帮助!! (3认同)

Chi*_*tel 542

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

android:background="@android:color/transparent" 
Run Code Online (Sandbox Code Playgroud)

  • 可能是因为#FF 00 00 00 = 100%黑色. (9认同)
  • 如果有人感兴趣,那么以编程方式编写的等效内容是Android.Resource.Color.Transparent :) (8认同)
  • 我在旧版本的Android上遇到了一个问题,它没有将#ff000000作为纯透明处理.使用此修复它. (4认同)
  • @Ioeschg前两个字母用于alpha通道.#00xxxxxx是透明的,而x是你想要的任何十六进制值. (3认同)
  • @undroid试试`android:background ="#00ffffff"` (3认同)

Aar*_*ron 173

除了哈尔沙德提到的:

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

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

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

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

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

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

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

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

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

Xar*_*mer 138

如果要添加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
Run Code Online (Sandbox Code Playgroud)

您还可以通过编程方式设置不透明度:

yourView.getBackground().setAlpha(127);
Run Code Online (Sandbox Code Playgroud)

将不透明度设置为0(完全透明)到255(完全不透明).127.5正好是50%.

您可以使用给定的公式创建任何级别的透明度.如果你想要半透明:

 16 |128          Where 128 is the half of 256.
    |8 -0         So it means 80 is half transparent.
Run Code Online (Sandbox Code Playgroud)

透明度为25%:

16 |64            Where 64 is the quarter of 256.
   |4 -0          So it means 40 is quarter transparent.
Run Code Online (Sandbox Code Playgroud)


Nar*_*iya 37

使用以下代码为黑色:

<color name="black">#000000</color>
Run Code Online (Sandbox Code Playgroud)

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

<color name="black">#99000000</color>
Run Code Online (Sandbox Code Playgroud)

以下是不透明度代码:

100% - FF

95% - F2

90% - E6

85% - D9

80% - CC

75% - 高炉

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


Ahm*_*ck' 26

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


Int*_*ons 23

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

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


Fel*_*los 16

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

mComponentName.setBackgroundColor(Color.parseColor("#80000000"));
Run Code Online (Sandbox Code Playgroud)

  • 这使它变灰了. (2认同)

For*_*ran 13

在 XML 中

@android:color/transparent
Run Code Online (Sandbox Code Playgroud)

在代码中

mComponentName.setBackgroundResource(android.R.color.transparent)
Run Code Online (Sandbox Code Playgroud)


Oct*_*rpe 8

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

  mComponentName.setBackgroundColor(getResources().getColor(android.R.color.transparent));
Run Code Online (Sandbox Code Playgroud)


Jay*_*Ryu 8

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

android:alpha="0.0" // for transparent
android:alpha="1.0" // for opaque
Run Code Online (Sandbox Code Playgroud)

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


Agi*_*nbu 7

试试这个代码:)

其完全透明的六进制代码- “#00000000”


Sui*_*eep 6

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


Ame*_*een 5

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

#00000000
Run Code Online (Sandbox Code Playgroud)

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

#00000000
#10000000
#20000000
#30000000
Run Code Online (Sandbox Code Playgroud)


And*_*ska 5

一种更简单的方法:

mComponentName.setBackgroundResource(android.R.color.transparent);
Run Code Online (Sandbox Code Playgroud)


Jay*_* PM 5

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

Android 调整颜色不透明度