2011-12-21 24 views
17

Hola Tengo un diseño que estoy usando para llenar mi página y tengo que establecer una imagen de fondo en mi drawable folder en ese diseño.Android Layout background alpha

Quiero establecer el alpha value de la imagen en algo bastante bajo, casi hacer que la imagen parezca una marca de agua.

mi xml parece

<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" > 

Como se puede ver que se ha asignado un id al diseño

pensé en mi alcrear que podía hacer algo como esto?

View backgroundimage = (View) findViewById(R.id.background); 
backgroundimage.setAlpha(80); 

Esto no está funcionando sin embargo sospecho que es porque estoy tratando de emitir el fondo como View lo que debería proyectarlo como?

Respuesta

36

Trate de usar:

Drawable.setAlpha(); 

que debe hacer algo como esto:

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

Aunque este método funciona, parece para obtener el estado original o 100% alfa, es posible que necesite usar una escala de 0-1000. Entonces, si intentas obtener un botón para que parezca un 50% alfa, en realidad deberías establecer Alfa (200) en lugar de establecer Alfa (50) ... al menos usar API 19 en un Botón ... restableciendo el botón de nuevo a es aspecto original, tuve que establecer Alfa (1000) ... – whyoz

+3

100% de opacidad es igual a 255, no 1000 – snapix

33

Si desea establecer alfa en XML entonces u puede intentar esto:

<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" > 

primeros 2 dígitos se utilizan para establecer alfa aquí alfa es 80% los próximos 6 dígitos para código de color

Por lo tanto, alfa se establece en codificación hexadecimal. FF = 100% y 00 = 0%, por lo tanto, 80% no es 80 en hexadecimal, para obtener más valores estándar, consulte this publicación.

1

¡Puede establecer Alpha para Drawables no Views! Usted puede obtener antecedentes como estirable y hacer como esto:

View backgroundimage = (View) findViewById(R.id.background); 
backgroundimage.getBackground().setAlpha(80); 
2

Usar este en su LinearLayout

androide: Fondo = "# 92000000"

Cuestiones relacionadas