web-dev-qa-db-fra.com

Définir l’arrière-plan transparent d’une imageview sur Android

J'utilise une vue Web dans laquelle j'ajoute une vue d'image. Comment définir l'arrière-plan de cette vue d'image sur transparent?

J'ai essayé ceci:

mImageview.setBackgroundResource(R.color.trans);

trans<color name="trans">#00000000 </color>.

301
mudit

Dans votre XML, définissez l'attribut Background sur une couleur, une nuance White(#FFFFFF) ou Black(#000000). Si vous voulez de la transparence, il suffit de mettre 80 avant le code de hachage actuel:

#80000000

Cela changera la couleur de votre choix en une couleur transparente .. :)

531
Harshad

Vous pouvez définir l’arrière-plan transparent de toute mise en page, de toute vue ou de tout composant en ajoutant ce code en XML:

Android:background="@Android:color/transparent" 
527
Chirag Patel

En plus de ce que Harshad a mentionné:

Deux caractères hexadécimaux peuvent être ajoutés à n’importe quel code de couleur hexadécimal. Les deux premiers caractères d'un code de couleur hexadécimal à 8 chiffres représentent son opacité sous Android.

Les deux caractères hexadécimaux peuvent aller de 00 à FF. Par exemple,

  • Hex noir opaque normal - "# 000000"
  • Complètement transparent - "# 00000000"
  • Entièrement opaque - "# FF000000"
  • 50% transparent - "# 7F000000"

De cette façon, vous pouvez changer n'importe quelle couleur en n'importe quel niveau de transparence.

Pour trouver le préfixe hexadécimal à partir d'un pourcentage:

Divisez le nombre en pourcentage par 100 et multipliez par 255 pour obtenir la valeur décimale. Convertissez le nombre décimal en hexadécimal ici .

Par exemple, pour 50%, 50/100 * 255 = 127. En utilisant le lien, nous obtenons la valeur hexadécimale 7F.

Source: Android: comment créer un fond transparent ou opaque

170
Aaron

Si vous souhaitez ajouter une transparence de 20% ou 30%, vous devez ajouter deux caractères supplémentaires au code hexadécimal, comme CC.

Remarque

Android:background="#CCFF0088" en XML

où CC est la valeur alpha, FF le facteur rouge, 00 le facteur vert et 88 le facteur bleu.

Un code d'opacité:

Valeurs d'opacité des hexagones

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

Vous pouvez également définir l'opacité par programme comme:

yourView.getBackground().setAlpha(127);

Définissez une opacité comprise entre 0 (totalement transparent) et 255 (complètement opaque). Le 127,5 est exactement 50%.

Vous pouvez créer n’importe quel niveau de transparence en utilisant la formule donnée. Si vous voulez la moitié transparente:

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

Et pour une transparence de 25%:

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

Utilisez le code ci-dessous pour le noir:

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

Maintenant, si vous voulez utiliser l'opacité, vous pouvez utiliser le code ci-dessous:

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

Et ci-dessous pour le code d'opacité:

100% - FF

95% - F2

90% - E6

85% - J9

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

34

utiliser ce code pour la couleur transparente

Android:background="@Android:color/transparent" 
27
saurabhgoyal795

Il existe déjà une constante prédéfinie. Utilisez Color.TRANSPARENT.

25

Il existe déjà un transparent intégré à Android: R.color.transparent. http://developer.Android.com/reference/Android/R.color.html#transparent

Mais je pense que vous voudrez peut-être rendre l'arrière-plan de l'image que vous placez dans WebView transparent, par exemple, avec un fichier PNG transparent, plutôt que l'arrière-plan ImageView. Si l'image réelle n'est pas du tout transparente, l'arrière-plan ImageView ne peut pas être vu.

23
Intrications

Si vous le voulez en code, il suffit de:

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

Vous pouvez également analyser l'ID de la ressource avec le code suivant:

  mComponentName.setBackgroundColor(getResources().getColor(Android.R.color.transparent));
8
Octoth0rpe

Essayez ce code:)

C'est un code hexadécimal totalement transparent - "# 00000000"

6
Agilanbu

Pour ceux qui sont toujours confrontés à ce problème, vous pouvez essayer ceci
element.getBackground().setAlpha(0);

6
SuicideSheep

Dans votre fichier XML, définissez un attribut "Alpha"

tel que

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

Vous pouvez donner n'importe quelle valeur entre 0.0 et 1.0 en décimal pour appliquer la transparence requise. Par exemple, la transparence 0,5 est idéale pour les composants désactivés

6
Jay Ryu

Une autre option de travail que je suis tombé sur est de définir Android:background="@null"

4
clwhisk

Un moyen encore plus simple:

mComponentName.setBackgroundResource(Android.R.color.transparent);
4
Andrei Aulaska

Utilisez les éléments suivants pour une transparence complète:

#00000000

Lorsque j'ai essayé avec # 80000000, j'ai obtenu une superposition transparente noire que je ne veux pas. Essayez de changer les deux premiers chiffres. il contrôle le niveau de transparence, comme

#00000000
#10000000
#20000000
#30000000
4
Ameen Maheen

Dans Android Studio, il est très simple d'ajuster la couleur et l'opacité à l'aide d'un outil intégré:

Android Adjust Color Opacity

3
Jayakrishnan PM

Vous pouvez également utiliser View.setAlpha(float) pour modifier la visibilité avec précision.

0 serait transparent, 1 entièrement visible. ;)

3
jns

Essayez d'utiliser le code suivant. Cela vous aidera dans son intégralité ou plus.

  1. Un fichier .xml conçu pour utiliser ce code pour définir la couleur d'arrière-plan:

    Android:background="#000000"
    

    ou

    Android:background="#FFFFFF"
    

    Image is here

    Ou vous pouvez également le définir par programme.

  2. Aussi, vous pouvez utiliser ce code par programme:

    image.setBackgroundDrawable(getResources().getDrawable(
        R.drawable.llabackground));
    
  3. De plus, ce code pour définir la couleur de fond aussi bien par programme:

    image.setBackgroundColor(Color.parseColor("#FFFFFF"));
    
  4. Ce code pour le même programme:

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

La couleur dépend de votre choix de la couleur que vous souhaitez utiliser pour transparent. Utilisez principalement une couleur blanche ou #FFFFFF.

En ce qui concerne R.drawable.llabackground: Cette ligne de code correspond à votre style d'arrière-plan, comme un élément spécial ou différent pour vos besoins. Vous pouvez également l'utiliser.

2
Amitsharma

Si vous utilisez une image XML pouvant être dessinée, vous pouvez la rendre transparente, comme indiqué dans l'image ci-dessous, ou vous pouvez utiliser un code de couleur:

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

Enter image description here

2
Tariqul
ImageView.setBackground(R.drawable.my_background);

ImageView.setBackgroundResource(R.color.colorPrimary);

ImageView.getImageAlpha();

ImageView.setAlpha(125); // transparency
0
Ravi Naidu

Essaye ça:

#aa000000

Pour la transparence 000000 = noir, vous pouvez modifier ces six chiffres pour la couleur souhaitée.

0
Alex Zaraos