web-dev-qa-db-fra.com

Comment puis-je rendre une image transparente sur Android?

J'utilise une mise en page linéaire et une mise en page. Dans la disposition linéaire, je conserve une image comme arrière-plan et dans la disposition du cadre, je conserve une imageView. Dans cette image, je donne une image.

Maintenant, je veux rendre la deuxième image (qui est dans l'imageView) transparente. Comment puis-je faire ceci?

48
khan

Essaye ça:

ImageView myImage = (ImageView) findViewById(R.id.myImage);
myImage.setAlpha(127); //value: [0-255]. Where 0 is fully transparent and 255 is fully opaque.

Remarque : setAlpha(int) est obsolète en faveur de setAlpha(float) où 0 est totalement transparent et 1, totalement opaque. Utilisez-le comme: myImage.setAlpha(0.5f)

115
Rubycon

Android:alpha fait ceci en XML:

<ImageView
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:src="@drawable/blah"
    Android:alpha=".75"/>
79
Eric

Définissez un attribut id sur le ImageView:

<ImageView Android:id="@+id/myImage"

Dans votre code où vous souhaitez masquer l'image, vous aurez besoin du code suivant.

Tout d'abord, vous aurez besoin d'une référence à ImageView:

ImageView myImage = (ImageView) findViewById(R.id.myImage);

Ensuite, définissez Visibility sur GONE:

myImage.setVisibility(View.GONE);

Si vous souhaitez que le code le rende visible ailleurs, définissez-le sur Visible de la même manière:

myImage.setVisibility(View.VISIBLE);

Si vous voulez dire "totalement transparent", le code ci-dessus fonctionne. Si vous voulez dire "partiellement transparent", utilisez la méthode suivante:

int alphaAmount = 128; // Some value 0-255 where 0 is fully transparent and 255 is fully opaque
myImage.setAlpha(alphaAmount);
5
Rich

Si vous êtes dans un fichier XML, utilisez ce qui suit pour rendre votre imageview transparente!

 Android:background="@null" 
4
Karoly

Sur les versions plus récentes d'Android (post Android 4.2 (au moins Jelly bean)), la méthode setAlpha (int value) est dépréciée. Utilisez plutôt la méthode setAlpha(float value) qui prend un float compris entre 0 et 1, où 0 correspond à la transparence complète et 1 à l'absence de transparence.

4
wolfaviators

Définissez la transparence à l'aide de setAlpha(float alpha). Le code ci-dessous fonctionne pour moi si j'ai utilisé une valeur alpha dans float, 0 - 1.

  • 0: complètement transparent
  • 0,5 - 50%: transparent
  • 1: complètement opaque

    ImageView imageView = (ImageView) itemView.findViewById (R.id.imageView); ImageView.setImageResource (mResources [position]); ImageView.setAlpha (.80f);

1
RajaSekar

La méthode setAlpha(int) du type ImageView est obsolète.

Au lieu de

image.setImageAlpha(127);
//value: [0-255]. Where 0 is fully transparent and 255 is fully opaque.
1
Iman Marashi

En XML, utilisez:

Android:background="@Android:color/transparent"
1
pankaj gehlot

Utilisation:

ImageView image = (ImageView) findViewById(R.id.image);
image.setAlpha(150); // Value: [0-255]. Where 0 is fully transparent
                     // and 255 is fully opaque. Set the value according
                     // to your choice, and you can also use seekbar to
                     // maintain the transparency.
0
Shubham Kamlapuri

Image alpha définit seulement l'opacité sur ImageView, ce qui rend l'image floue. Essayez d'ajouter un attribut de teinte dans ImageView.

 Android:tint="#66000000"

Cela peut aussi être fait par programme:

imageView.setColorFilter(R.color.transparent);

où vous devez définir une couleur transparente dans vos couleurs.xml

<color name="transparent">#66000000</color>
0
Ajay Chauhan

Pour 20% de transparence, cela a fonctionné pour moi:

Button bu = (Button)findViewById(R.id.button1);
bu.getBackground().setAlpha(204);
0
Muhamed Riyas M

Comme setAlpha int est obsolète, setImageAlpha (int) peut être utilisé

ImageView img = (ImageView) findViewById(R.id.img_image);
img.setImageAlpha(127); //value: [0-255]. Where 0 is fully transparent and 255 is fully opaque.
0
Al-Punk