【发布时间】:2010-12-02 07:53:53
【问题描述】:
我正在使用一个 Web 视图,并在其中添加一个图像视图。如何将此图像视图的背景设置为透明?
我试过这个:
mImageview.setBackgroundResource(R.color.trans);
在哪里trans → <color name="trans">#00000000 </color>。
【问题讨论】:
我正在使用一个 Web 视图,并在其中添加一个图像视图。如何将此图像视图的背景设置为透明?
我试过这个:
mImageview.setBackgroundResource(R.color.trans);
在哪里trans → <color name="trans">#00000000 </color>。
【问题讨论】:
您可以通过在 XML 中添加以下代码来设置任何布局、任何视图或任何组件的背景透明:
android:background="@android:color/transparent"
【讨论】:
android:background="#00ffffff"
在您的 XML 中,将 Background 属性设置为任何颜色,White(#FFFFFF) 阴影或 Black(#000000) 阴影。如果你想要透明,只需在实际哈希码前加上 80:
#80000000
这会将您想要的任何颜色更改为透明颜色.. :)
【讨论】:
View.setBackgroundResource(R.drawable.something) 设置的背景图像设置例如40% 的透明度?
View.getBackground().setAlpha(50)。再简单不过了,对吧? :o) 无论如何,谢谢你的帮助!!
#10000000 透明度更低的黑色 - #99000000
除了Harshad提到的:
两个十六进制字符可以附加到任何十六进制颜色代码。 8 位十六进制颜色代码中的前两个字符表示其在 Android 中的不透明度。
这两个十六进制字符的范围可以从 00 到 FF。例如,
通过这种方式,您可以将任何颜色更改为任何级别的透明度。
从百分比中查找十六进制前缀:
将百分比数除以 100 再乘以 255 得到十进制值。将十进制转换为十六进制here。
例如,对于 50%,50/100 * 255 = 127。使用链接我们得到十六进制值 7F。
来源:Android: how to create a transparent or opaque background
【讨论】:
如果您想添加 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.
【讨论】:
使用下面的黑色代码:
<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
【讨论】:
已经有一个预定义的常量。使用Color.TRANSPARENT。
【讨论】:
Color.TRANSPARENT 的值设置为0x00000000(不是预期的完全不透明的0xFF000000),所以根据你的处理方式,这个常量可能对实现透明度没有帮助!仍然 +1 推荐一个常数!
Android 中已经内置了一个透明:R.color.transparent。 http://developer.android.com/reference/android/R.color.html#transparent
但我认为您可能希望将放置到 WebView 中的图像的背景设为透明,例如使用透明 PNG,而不是 ImageView 背景。如果实际图像完全不透明,则无法通过它看到 ImageView 背景。
【讨论】:
如果您希望在代码中使用它,只需:
mComponentName.setBackgroundColor(Color.parseColor("#80000000"));
【讨论】:
试试这个代码:)
它是一个完全透明的十六进制代码 - "#00000000"
【讨论】:
在您的 XML 文件中,设置属性“Alpha”
如
android:alpha="0.0" // for transparent
android:alpha="1.0" // for opaque
您可以提供 0.0 到 1.0 之间的任何十进制值,以应用所需的透明度。例如,0.5 透明度是禁用组件的理想选择
【讨论】:
或者,作为替代,使用以下代码解析资源 ID:
mComponentName.setBackgroundColor(getResources().getColor(android.R.color.transparent));
【讨论】:
在 xml 中
@android:color/transparent
在代码中
mComponentName.setBackgroundResource(android.R.color.transparent)
【讨论】:
对于那些仍然面临这个问题的人,你可以试试这个
element.getBackground().setAlpha(0);
【讨论】:
NullPointerException: Attempt to invoke virtual method 'void android.graphics.drawable.Drawable.setAlpha(int)' on a null object reference
element 看看它是否是一个空对象
一种更简单的方法:
mComponentName.setBackgroundResource(android.R.color.transparent);
【讨论】:
使用以下内容以获得完全透明:
#00000000
当我尝试使用 #80000000 时,我得到了一个我不想要的黑色透明覆盖层。尝试更改前两位数字;它控制透明度级别,例如
#00000000
#10000000
#20000000
#30000000
【讨论】:
我遇到的另一个工作选项是设置android:background="@null"
【讨论】:
您也可以使用View.setAlpha(float) 来精确更改可见性。
0 是透明的,1 是完全可见的。 ;)
【讨论】:
尝试使用以下代码。它将全面或更多地帮助您。
旨在使用此代码设置背景颜色的 .xml 文件:
android:background="#000000"
或
android:background="#FFFFFF"
或者您也可以通过编程方式进行设置。
您也可以通过编程方式使用此代码:
image.setBackgroundDrawable(getResources().getDrawable(
R.drawable.llabackground));
此代码也用于以编程方式设置背景颜色:
image.setBackgroundColor(Color.parseColor("#FFFFFF"));
此代码以编程方式相同:
image.setBackgroundColor(getResources().getColor(Color.WHITE));
颜色取决于您选择要用于透明的颜色。主要使用白色或#FFFFFF 颜色。
关于R.drawable.llabackground:这行代码适合你的背景风格,比如一些特殊或不同的东西。你也可以用这个。
【讨论】:
带有透明度信息的颜色定义可以是格式
#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
【讨论】:
ImageView.setBackground(R.drawable.my_background);
ImageView.setBackgroundResource(R.color.colorPrimary);
ImageView.getImageAlpha();
ImageView.setAlpha(125); // transparency
【讨论】:
试试这个:
#aa000000
对于透明度 000000 = 黑色,您可以将这六个数字更改为您想要的颜色。
【讨论】:
使用具有 2 个 imageViews 的 RelativeLayout。并在顶部的imageView上设置透明度代码。
透明码:
<solid android:color="@color/white"/>
<gradient android:startColor="#40000000" android:endColor="#FFFFFFFF" android:angle="270"/>
【讨论】:
示例:使用https://www.joshuamiron.com/percent-to-hex-converter
80% 的不透明度是
<color name="opaque_80_percent">#CC000000</color>
【讨论】: