Android Layout background alpha-ThrowExceptions

Exception or error:

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?

How to solve:

Try to use:

Drawable.setAlpha();

You should do something like this:

View backgroundImage = findViewById(R.id.background);
Drawable background = backgroundImage.getBackground();
background.setAlpha(80);

###

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.

###

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);

###

Use This on your LinearLayout

android:background=”#92000000″

Leave a Reply

Your email address will not be published. Required fields are marked *