Je me demandais simplement s'il y avait un moyen de changer l'opacité de l'image d'arrière-plan pour un View
(c'est-à-dire. 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 celui-ci:
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 disposition XML. Je sais déjà que je pourrais saisir l'objet Drawable et définir l'alpha par programme, mais je veux voir si je peux le faire dans la mise en page.
J'ai fini par me contenter de la solution de programmation, car il ne semble pas que cela puisse être fait via les dispositions 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 simplifier votre travail
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
de: Cette réponse
Vous pouvez également utiliser XML pour modifier la transparence:
Android:alpha = "0.7"
La valeur de alpha varie de 0 à 1
Vous pouvez incorporer l'image au format xml, vous pourrez donc la voir dans la disposition 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épond 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);