Reputation: 429
Hi I have a layout which I'm using to fill my page and I have to set a background image held in my drawable folder
in that layout.
I want to then set the alpha value
of the image to something quite low almost make the image like a water mark.
my xml looks like
<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" >
As you can see I have assigned an id to the layout
I thought in my oncreate I could do something like this?
View backgroundimage = (View) findViewById(R.id.background);
backgroundimage.setAlpha(80);
This is not working however I suspect its because I'm trying to cast the background as a View
what should I cast it as?
Upvotes: 23
Views: 47995
Reputation: 6162
If you want to set alpha in xml then u can try this:
<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" >
first 2 digits are used to set alpha here alpha is 80% next 6 digits for color code
Hence, alpha is set in hexadecimal coding. FF = 100% and 00 = 0%, thus 80% is not 80 in hexadecimal, for more standard values see this post.
Upvotes: 36
Reputation: 1508
Try to use:
Drawable.setAlpha();
You should do something like this:
View backgroundImage = findViewById(R.id.background);
Drawable background = backgroundImage.getBackground();
background.setAlpha(80);
Upvotes: 46
Reputation: 638
You Can Set Alpha for Drawables not Views ! You Can get background as a drawable and do like this :
View backgroundimage = (View) findViewById(R.id.background);
backgroundimage.getBackground().setAlpha(80);
Upvotes: 2