user1096447
user1096447

Reputation: 429

Android Layout background alpha

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

Answers (4)

Kaushik
Kaushik

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

Serdar KUŞ
Serdar KUŞ

Reputation: 404

Use This on your LinearLayout

android:background="#92000000"

Upvotes: 2

Tang Ke
Tang Ke

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

Erfan Bagheri
Erfan Bagheri

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

Related Questions