2011-02-11 10 views
20

Me preguntaba si había una forma de cambiar la opacidad de la imagen de fondo para un View (es decir, , etc.).Opacidad sobre un fondo Imagen extraíble en Vista (usando diseño XML)

sé que puedo configurar la imagen de fondo como esto:

android:background="@drawable/my_drawable_image" 

O puedo establecer un color de fondo específico con un valor alfa de esta manera:

android:background="#10f7f7f7" 

¿Hay alguna manera de puede controlar la opacidad (establecer el alfa) si estoy configurando el fondo como una imagen dibujable? Y quiero hacer esto en el Diseño XML. Ya sé que podría tomar el objeto Drawable y establecer programáticamente el alfa, pero quiero ver si puedo hacerlo en el diseño.

+1

Se puede hacer utilizando el recurso drawable xml. Echa un vistazo a mi respuesta http://stackoverflow.com/a/36467846/5460053 –

Respuesta

29

Terminé yendo con la solución programática, ya que no parece que se pueda hacer a través de los diseños XML.

Drawable rightArrow = getResources().getDrawable(R.drawable.green_arrow_right_small); 

// setting the opacity (alpha) 
rightArrow.setAlpha(10); 

// setting the images on the ImageViews 
rightImage.setImageDrawable(rightArrow); 
+0

@mohammadsadeghsaati '#setAlpha (int)' está disponible desde el nivel 1 de API en 'Drawable'. –

2

La respuesta que dio no respondió exactamente a la pregunta que hizo. Esto es lo que hice.

Drawable login_activity_top_background = getResources().getDrawable(R.drawable.login_activity_top_background); 
    login_activity_top_background.setAlpha(127); 
    LinearLayout login_activity_top = (LinearLayout) findViewById(R.id.login_activity_top); 
    login_activity_top.setBackgroundDrawable(login_activity_top_background); 
+0

Bueno, mi pregunta era si podría establecerse en el diseño XML, en lugar de programáticamente. – xil3

12

Esto podría hacer más sencillo su trabajo Valores

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

Alfa 0-255, 0 significa completamente transparente y 255 completamente opaco significa

de: This Answer

5

Puede incrustar la imagen en xml, por lo que podrá verla en el diseño gráfico

<LinearLayout 
     style="@style/LoginFormContainer" 
     android:id="@+id/login_layout" 
     android:orientation="vertical" 
     android:background="@drawable/signuphead"> 

y cambiar el código como este para hacerlo transparente:

Drawable loginActivityBackground = findViewById(R.id.login_layout).getBackground(); 
loginActivityBackground.setAlpha(127); 
7

También puede utilizar XML para cambiar la transparencia:

android:alpha = "0.7"

El valor de alfa varía de 0 a 1

+0

no funciona usando un imageButton –

+0

esto aplica alfa a la vista, no al fondo – andrei

Cuestiones relacionadas