Establecer fondo transparente de una vista de imagen en Android


Respuestas:


571

En su XML, establezca el Backgroundatributo en cualquier color, White(#FFFFFF)sombra o Black(#000000)sombra. Si desea transparencia, simplemente ponga 80 antes del código hash real:

#80000000

Esto cambiará cualquier color que desee a uno transparente .. :)


3
@Harshad: ¿Es posible establecer, digamos, una transparencia del 40% para una imagen de fondo configurada con View.setBackgroundResource(R.drawable.something)?
Luis A. Florit

@ LuisA.Florit Encontré este enlace donde necesita multiplicar por 0.4 (40/100) a su valor RGB. No estoy seguro de si esto es útil, pero puede intentarlo. forums.esri.com/Thread.asp?c=93&f=1730&t=223940
Harshad

3
@Harshad: Lo siento, no entendí tu respuesta. No tengo ningún valor RGB, pero un TextView con una imagen de fondo que quiero ser, digamos, 50% transparente. Pero, de todos modos, he encontrado la respuesta aquí en stackoverflow: View.getBackground().setAlpha(50). No podría ser más simple, ¿verdad? : o) De todos modos, ¡gracias por tu ayuda!
Luis A. Florit

21
Si agrega cualquier número del 01 al 99 antes del código hash real, le dará la transparencia. Por ejemplo: Negro con más transparencia - #10000000 Negro con menos transparencia - #99000000
AnhSirk Dasarp

64
@AnhSirkDasarp No solo del 01 al 99, ya que el resto de los números también son hexadecimales, por lo que puede poner cualquier cosa desde 00 hasta ff. Para un cincuenta por ciento transparente, debe poner 80 en lugar de 50, y para los demás tiene que hacer algunos cálculos básicos ...
Nemanja Kovacevic

571

Puede establecer el fondo transparente de cualquier diseño, vista o componente agregando este código en XML:

android:background="@android:color/transparent" 

44
Tuve un problema con las versiones anteriores de Android que no manejaban # ff000000 como puramente transparente. Usando esto lo arregló.
loeschg

11
Probablemente porque #FF 00 00 00 = 100% negro.
Derk-Jan

3
@Ioeschg Las primeras 2 letras son para el canal alfa. # 00xxxxxx sería transparente, mientras que x es cualquier valor hexadecimal que desee.
user1032613

10
Y el equivalente programáticamente si alguien está interesado es Android.Resource.Color.Transparent :)
leoneboaventura

3
@undroid tryandroid:background="#00ffffff"
ban-geoengineering

179

Además de lo que Harshad mencionó:

Se pueden agregar dos caracteres hexadecimales a cualquier código de color hexadecimal. Los primeros dos caracteres en un código de color hexadecimal de 8 dígitos representan su opacidad en Android.

Los dos caracteres hexadecimales pueden variar de 00 a FF. Por ejemplo,

  • Hexágono negro opaco normal- "# 000000"
  • Totalmente transparente - "# 00000000"
  • Totalmente opaco - "# FF000000"
  • 50% transparente - "# 7F000000"

De esta manera, puede cambiar cualquier color a cualquier nivel de transparencia.

Para encontrar el prefijo hexadecimal de un porcentaje:

Divide el número de porcentaje entre 100 y multiplica por 255 para obtener el valor decimal. Convierta el decimal a hexadecimal aquí .

Por ejemplo, para 50%, 50/100 * 255 = 127. Usando el enlace obtenemos el valor hexadecimal 7F.

Fuente: Android: cómo crear un fondo transparente u opaco


3
en realidad, la transparencia perfecta del 50% es 7F y no 80;)
shinyuX

147

Si desea agregar un 20% o un 30% de transparencia, debe colocar dos caracteres más en el código hexadecimal, como CC.

Nota

android:background="#CCFF0088" en XML

donde CC es el valor alfa, FF es el factor rojo, 00 es el factor verde y 88 es el factor azul.

Algún código de opacidad:

Valores de opacidad hexadecimal

100%  FF
95%  F2
90%  E6
85%  D9
80%  CC
75%  BF
70%  B3
65%  A6
60%  99
55%  8C
50%  80
45%  73
40%  66
35%  59
30%  4D
25%  40
20%  33
15%  26
10%  1A
5%   0D
0%   00

También puede establecer la opacidad mediante programación como:

yourView.getBackground().setAlpha(127);

Establezca la opacidad entre 0 (totalmente transparente) a 255 (completamente opaco). El 127.5 es exactamente 50%.

Puede crear cualquier nivel de transparencia utilizando la fórmula dada. Si quieres medio transparente:

 16 |128          Where 128 is the half of 256.
    |8 -0         So it means 80 is half transparent.

Y para un 25% de transparencia:

16 |64            Where 64 is the quarter of 256.
   |4 -0          So it means 40 is quarter transparent.

42

Use el siguiente código para negro:

<color name="black">#000000</color>

Ahora, si desea usar opacidad, puede usar el siguiente código:

<color name="black">#99000000</color>

Y el siguiente para el código de opacidad:

100% - FF

95% - F2

90% - E6

85% - D9

80% - CC

75% - BF

70% - B3

65% - A6

60% - 99

55% - 8C

50% - 80

45% - 73

40% - 66

35% - 59

30% - 4D

25% - 40

20% - 33

15% - 26

10% - 1A

5% - 0D

0% - 00


27

Ya hay una constante predefinida. Uso Color.TRANSPARENT.


1
¡El uso de una constante debería ser la mejor / más limpia forma de hacerlo! Pero en este caso, el valor de Color.TRANSPARENTse establece en 0x00000000(no el completamente opaco esperado 0xFF000000), por lo que, dependiendo de cómo lo haga, ¡esta constante podría no ayudar realmente a lograr la transparencia! ¡Todavía +1 por recomendar una constante!
Levite

24

Ya hay un transparente integrado en Android: R.color.transparent. http://developer.android.com/reference/android/R.color.html#transparent

Pero creo que es posible que desee hacer que el fondo de la imagen que está colocando en WebView sea transparente, por ejemplo, con un PNG transparente, en lugar del fondo de ImageView. Si la imagen real no es transparente, el fondo ImageView no se puede ver a través de ella.


la imagen es transparent..it aún no ha HAV cualquier background..i hv también trató fondo imageview entorno como u HV said..but que no funcionaban ... PLZ ayuda ..
mudit

¿Puedes publicar más detalles como un enlace a la imagen que estás usando y el código y el diseño que estás usando?
Intricaciones del

17

En caso de que lo desee en el código, solo:

mComponentName.setBackgroundColor(Color.parseColor("#80000000"));

13

Prueba este código :)

Es un código hexa totalmente transparente - "# 00000000"


10

O, como alternativa, analice la ID del recurso con el siguiente código:

  mComponentName.setBackgroundColor(getResources().getColor(android.R.color.transparent));

10

En su archivo XML, establezca un atributo "Alfa"

como

android:alpha="0.0" // for transparent
android:alpha="1.0" // for opaque

Puede dar cualquier valor entre 0.0 a 1.0 en decimal para aplicar la transparencia requerida. Por ejemplo, la transparencia 0.5 es ideal para el componente deshabilitado


5

Para aquellos que todavía se enfrentan a este problema, puede intentar esto
element.getBackground().setAlpha(0);


Me sale unNullPointerException: Attempt to invoke virtual method 'void android.graphics.drawable.Drawable.setAlpha(int)' on a null object reference
IgorGanapolsky

1
@IgorGanapolsky: trate de elementver si es un objeto nulo
SuicideSheep

5

Use lo siguiente para una transparencia completa:

#00000000

Cuando probé con # 80000000, obtuve una superposición transparente negra que no quiero. Intenta cambiar los dos primeros dígitos; controla el nivel de transparencia, como

#00000000
#10000000
#20000000
#30000000

color perfecto en oscuridad transparente
Najib Ahmed Puthawala


4

Una forma más simple:

mComponentName.setBackgroundResource(android.R.color.transparent);

4

Otra opción de trabajo que encontré es establecer android:background="@null"


2

También podrías usar View.setAlpha(float) para cambiar la visibilidad con precisión.

0 sería transparente, 1 completamente visible. ;)


1
¡Eso cambia el alfa de la Vista, NO su fondo!
IgorGanapolsky

La vista completa será transparente, incluido el contenido / la imagen, configurando el alfa que es incorrecto en este caso. El usuario desea mantener la transparencia de una imagen, no cambiar la imagen para que sea transparente.
Haroun Hajem

2

Intenta usar el siguiente código. Te ayudará en su totalidad o más.

  1. Un archivo .xml diseñado para usar este código para establecer el color de fondo:

    android:background="#000000"

    o

    android:background="#FFFFFF"

    La imagen está aquí

    O también puede configurarlo mediante programación.

  2. También puede usar este código mediante programación:

    image.setBackgroundDrawable(getResources().getDrawable(
        R.drawable.llabackground));
  3. También este código para configurar el color de fondo también mediante programación:

    image.setBackgroundColor(Color.parseColor("#FFFFFF"));
  4. Este código para el mismo mediante programación:

    image.setBackgroundColor(getResources().getColor(Color.WHITE));

El color depende de su elección del color que desea usar para transparente. Principalmente use un color blanco o #FFFFFF.

En cuanto a R.drawable.llabackground: Esta línea de código es para su estilo de fondo, como algo especial o diferente para su propósito. También puedes usar esto.


2

Si usa una imagen XML dibujable, puede hacerla transparente como se muestra en la imagen a continuación, o puede usar un código de color:

<color name="black">#99000000</color> 

Ingrese la descripción de la imagen aquí


1

Las definiciones de color con información de transparencia pueden estar en forma

#AARRGGBB o #ARGB .

También puede usar el valor más corto para una transparencia total: # 0000 .

Otros valores son, por ejemplo:

white  grey   black
#FFFF  #F888  #F000 - full color
#EFFF  #E888  #E000
#DFFF  #D888  #D000
#CFFF  #C888  #C000
#BFFF  #B888  #B000
#AFFF  #A888  #A000
#9FFF  #9888  #9000
#8FFF  #8888  #8000
#7FFF  #7888  #7000
#6FFF  #6888  #6000
#5FFF  #5888  #5000
#4FFF  #4888  #4000
#3FFF  #3888  #3000
#2FFF  #2888  #2000
#1FFF  #1888  #1000
#0FFF  #0888  #0000 - full transparency

0
ImageView.setBackground(R.drawable.my_background);

ImageView.setBackgroundResource(R.color.colorPrimary);

ImageView.getImageAlpha();

ImageView.setAlpha(125); // transparency

1
Aunque este código puede ayudar a resolver el problema, no explica por qué y / o cómo responde la pregunta. Proporcionar este contexto adicional mejoraría significativamente su valor a largo plazo. Por favor, editar su respuesta para agregar explicación, incluyendo lo que se aplican limitaciones y supuestos.
Toby Speight el

0

Prueba esto:

#aa000000

Para transparencia 000000 = negro, puede cambiar estos seis números para el color que desee.


¿cuál es su recurso para uso aa antes hexagonal de color
Mina Fawzy
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.