嗨我有一个用于填充页面的布局,我必须在该布局中设置drawable folder
中保存的背景图像。
我想将图像的alpha value
设置为非常低的值,几乎使图像成为水印。
我的xml看起来像
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/background"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@drawable/main_background" >
如您所见,我已为布局分配了一个ID
我认为在我的创造中我能做到这样的事情吗?
View backgroundimage = (View) findViewById(R.id.background);
backgroundimage.setAlpha(80);
这不起作用,但我怀疑它是因为我试图将背景强制转换为View
我应该将其投射为什么?
答案 0 :(得分:40)
尝试使用:
Drawable.setAlpha();
你应该这样做:
View backgroundImage = findViewById(R.id.background);
Drawable background = backgroundImage.getBackground();
background.setAlpha(80);
答案 1 :(得分:35)
如果你想在xml中设置alpha,那么你可以试试这个:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/background"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="#CC000000" >
前2位用于设置alpha这里alpha是80%接下来的6位数 用于颜色代码
因此,alpha以十六进制编码设置。 FF = 100%且00 = 0%,因此80%不是十六进制的80,对于更多标准值,请参阅this post。
答案 2 :(得分:2)
在LinearLayout上使用此功能
机器人:背景=&#34;#92000000&#34;
答案 3 :(得分:1)
你可以为Drawables设置Alpha而不是视图!你可以把背景作为一个可绘制的,并且这样做:
View backgroundimage = (View) findViewById(R.id.background);
backgroundimage.getBackground().setAlpha(80);