在Android上设置imageview的透明背景
我正在使用Web视图,在其中添加图像视图。 我怎样才能将这个图像视图的背景设置为透明?
我试过这个:
mImageview.setBackgroundResource(R.color.trans);
其中trans
→ <color name="trans">#00000000 </color>
。
在您的XML中,将Background
属性设置为任何颜色, White(#FFFFFF)
阴影或Black(#000000)
阴影。 如果你想要透明度,只要把80放在实际的哈希码之前:
#80000000
这将改变你想要的任何颜色透明的.. 🙂
您可以通过在XML中添加此代码来设置任何布局,任何视图或任何组件的背景透明:
android:background="@android:color/transparent"
除了Harshad提到的:
两个hex字符可以附加到任何hex颜色代码。 8位hex颜色代码中的前两个字符表示Android中的不透明度。
两个hex字符的范围可以从00到FF。 例如,
- 普通不透明的黑色六angular形“#000000”
- 完全透明 – “#00000000”
- 完全不透明 – “#FF000000”
- 50%透明 – “#7F000000”
这样,您可以将任何颜色更改为任何级别的透明度。
从百分比中查找hex前缀:
将百分数除以100,乘以255得到十进制数。 在这里将十进制转换为hex。
例如,对于50%,50/100 * 255 = 127.使用链接我们得到hex值7F。
来源: Android:如何创build一个透明或不透明的背景
如果你想添加20%或30%的透明度,你应该预先再加两个字符到hex代码,比如CC。
注意
android:background="#CCFF0088"
in XML
其中CC是α值,FF是红色因子,00是绿色因子,88是蓝色因子。
一些不透明的代码:
hex不透明度值
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%。
您可以使用给定的公式创build任何级别的透明度。 如果你想半透明:
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.TRANSPARENT
。
使用下面的黑色代码:
<color name="black">#000000</color>
现在,如果你想使用不透明度,那么你可以使用下面的代码:
<color name="black">#99000000</color>
以下为不透明代码:
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
Android中已经有一个透明的内容:R.color.transparent。 http://developer.android.com/reference/android/R.color.html#transparent
但是我认为您可能想要将放置在WebView中的图像的背景设置为透明,例如,使用透明的PNG而不是ImageView背景。 如果实际的图像不是透明的,那么ImageView背景就不能通过它看到。
如果你想在代码中,只是:
mComponentName.setBackgroundColor(Color.parseColor("#80000000"));
或者,作为备用,使用以下代码parsing资源ID:
mComponentName.setBackgroundColor(getResources().getColor(android.R.color.transparent));
对于那些仍然面临这个问题的人,你可以试试这个
element.getBackground().setAlpha(0);
使用下面的完整透明度:
#00000000
当我尝试#80000000我得到了一个我不想要的黑色透明覆盖。 尝试改变前两位数字; 它控制着透明度的水平
#00000000 #10000000 #20000000 #30000000
一个更简单的方法:
mComponentName.setBackgroundResource(android.R.color.transparent);
我遇到的另一个工作选项是设置android:background="@null"
您也可以使用View.setAlpha(float)
来精确地更改可见性。
0将是透明的,1是完全可见的。 ;)
在Android Studio中,使用内置工具调整颜色和不透明度非常简单:
尝试使用下面的代码。 它会帮助你完整或更多。
-
devise用于使用此代码设置背景颜色的.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));
颜色取决于您想要透明使用哪种颜色的select。 大多使用白色或#FFFFFF颜色。
关于R.drawable.llabackground
:这行代码适合你的背景风格,就像你的目的特殊或不同的东西。 你也可以使用这个。
如果您使用可绘制的XML图像,则可以使其透明(如下图所示),也可以使用颜色代码:
<color name="black">#99000000</color>
在你的XML文件中,设置一个属性“Alpha”
如
"android:alpha"="1.0"
其中1.0是不透明的,0.0是完全透明的。
ImageView.setBackground(R.drawable.my_background); ImageView.setBackgroundResource(R.color.colorPrimary); ImageView.getImageAlpha(); ImageView.setAlpha(125); // transparency
尝试这个:
#aa000000
对于透明度000000 =黑色,您可以更改这六个数字为你想要的颜色。