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?
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)
Android:alpha
fait ceci en XML:
<ImageView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:src="@drawable/blah"
Android:alpha=".75"/>
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);
Si vous êtes dans un fichier XML, utilisez ce qui suit pour rendre votre imageview transparente!
Android:background="@null"
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.
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.
1: complètement opaque
ImageView imageView = (ImageView) itemView.findViewById (R.id.imageView); ImageView.setImageResource (mResources [position]); ImageView.setAlpha (.80f);
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.
En XML, utilisez:
Android:background="@Android:color/transparent"
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.
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>
Pour 20% de transparence, cela a fonctionné pour moi:
Button bu = (Button)findViewById(R.id.button1);
bu.getBackground().setAlpha(204);
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.