Opacité sur une image dessinable en arrière-plan en vue (en utilisant la mise en page XML)
, je me demandais juste si il y avait un moyen de changer l'opacité de l'image d'arrière-plan pour un View
(ie. TextView
, etc.).
Je sais que je peux définir l'image d'arrière-plan comme ceci:
android:background="@drawable/my_drawable_image"
Ou je peux définir une couleur d'arrière-plan spécifique avec un paramètre alpha comme ceci:
android:background="#10f7f7f7"
Existe-t-il un moyen de contrôler l'opacité (définir l'alpha) si je définis l'arrière-plan comme une image dessinable? Et je veux le faire dans la mise en page XML. Je sais déjà que je pourrais attraper le Drawable objet et définir par programme l'alpha, mais je veux voir si je peux le faire dans la mise en page.
5 réponses
J'ai fini par aller avec la solution programmatique, car il ne semble pas que cela puisse être fait via les mises en page 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);
, Cela pourrait rendre votre Travail plus simple
View backgroundimage = findViewById(R.id.background);
Drawable background = backgroundimage.getBackground();
background.setAlpha(80);
Valeurs Alpha 0-255, 0 signifie entièrement transparent, et 255 signifie entièrement opaque
À Partir De: Cette Réponse
Vous pouvez également utiliser XML pour modifier la transparence:
android:alpha = "0.7"
La valeur de l'alpha est comprise entre 0 et 1
Vous pouvez intégrer l'image en xml, de sorte que vous serez en mesure de le voir dans la mise en page graphique
<LinearLayout
style="@style/LoginFormContainer"
android:id="@+id/login_layout"
android:orientation="vertical"
android:background="@drawable/signuphead">
Et changez le code comme ceci pour le rendre transparent:
Drawable loginActivityBackground = findViewById(R.id.login_layout).getBackground();
loginActivityBackground.setAlpha(127);
La réponse que vous avez donnée ne répondait pas exactement à la question que vous avez posée. Voici ce que j'ai fait.
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);