J'ai un bouton comme ci-dessous:
<Button
android:text="Submit"
android:id="@+id/Button01"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
</Button>
Dans mon onCreate()
événement, j'appelle Button01 comme ceci:
setContentView(R.layout.main);
View Button01 = this.findViewById(R.id.Button01);
Button01.setOnClickListener(this);
Il y a un fond dans l'application, et je veux définir une opacité sur ce bouton d'envoi. Comment définir une opacité pour cette vue? Est-ce quelque chose que je peux définir du côté java, ou puis-je définir dans le fichier main.xml?
Du côté java, j'ai essayé Button01.mutate().SetAlpha(100)
, mais cela m'a donné une erreur.
Je suis étonné par les réponses BEAUCOUP plus compliquées de tout le monde .
XML
Vous pouvez très simplement définir l'alpha dans la définition de couleur du bouton (ou de toute autre vue) dans votre xml:
Dans l'exemple ci-dessus, la couleur serait un rouge partiellement transparent.
Lors de la définition de la couleur d'une vue, le format peut être soit
#RRGGBB
ou#AARRGGBB
,AA
soit la valeur alpha hexadécimale.FF
serait totalement opaque et00
totalement transparent.Dynamiquement
Si vous devez modifier dynamiquement l'opacité de votre code, utilisez
Où l'INT va de
0
(entièrement transparent) à255
(entièrement opaque).la source
android:color
attribut.background
opacité incorrecte n'est pas l'view
opacité. Pas équivalent dans de nombreux cas d'utilisationJe suppose que vous avez peut-être déjà trouvé la réponse, mais sinon (et pour les autres développeurs), vous pouvez le faire comme ceci:
Ici, j'ai défini l'opacité à 45. Vous pouvez essentiellement la définir entre 0 (entièrement transparent) et 255 (complètement opaque)
la source
Je vous suggère de créer une couleur ARGB personnalisée dans votre fichier colors.xml, telle que:
puis définissez l'arrière-plan de votre bouton sur cette couleur:
Une autre chose que vous pouvez faire si vous voulez jouer avec la forme du bouton est de créer une ressource dessinable de forme où vous définissez les propriétés à quoi le bouton devrait ressembler:
fichier: res / drawable / round_corner_box.xml
Ensuite, utilisez-le comme arrière-plan du bouton:
la source
Selon la vue des documents Android, alpha est une valeur comprise entre 0 et 1. Donc, pour le définir, utilisez quelque chose comme ceci:
la source
Beaucoup plus facile à partir de ce qui précède. L'attribut alpha par défaut est là pour le bouton
La plage est comprise entre 0 pour une transparence totale et 1 pour une opacité totale.
la source
Ce qui précède est quelque chose que je sais ... Je pense que la création d'une classe de boutons personnalisée est la meilleure idée
API Level 11
Récemment, je suis tombé sur cet attribut android: alpha xml qui prend une valeur entre 0 et 1. La méthode correspondante est setAlpha (float) .
la source
@android:color/transparent
comme arrière-plan rendra la vue complètement transparente. La@android:alpha
partie semble être un addendum.Bien que ce
btnMybutton.getBackground().setAlpha(45);
soit une bonne idée, il suffit d'appliquer l'alpha à l'arrière-plan et non à la vue entière.Si vous souhaitez appliquer alpha pour afficher l'utilisation à la
btnMybutton.setAlpha(0.30f);
place. Cela applique l'opacité à la vue. Il accepte une valeur comprise entre 0 et 1.Doc dit:
la source
J'ai rencontré ce problème avec ICS / JB car les boutons par défaut du thème Holo sont constitués d'images légèrement transparentes. Pour un fond, cela est particulièrement visible.
Pain d'épice vs ICS +:
Copier sur tous les états et images dessinables pour chaque résolution et rendre les images transparentes solides est une douleur, j'ai donc opté pour une solution plus sale: enveloppez le bouton dans un support qui a un fond blanc. Voici un dessin XML brut (ButtonHolder) qui fait exactement cela:
Votre fichier XML
ButtonHolder.xml
styles.xml
Cependant, cela entraîne une bordure blanche car les images du bouton Holo incluent des marges pour tenir compte de l'espace pressé:
La solution consiste donc à donner au fond blanc une marge (4dp travaillé pour moi) et des coins arrondis (2dp) pour masquer complètement le blanc tout en rendant le bouton solide:
ButtonHolder.xml
Le résultat final ressemble à ceci:
Vous devez cibler ce style pour v14 +, et l'ajuster ou l'exclure pour Gingerbread / Honeycomb car leurs tailles d'image de bouton natives sont différentes des ICS et JB (par exemple, ce style exact derrière un bouton Gingerbread entraîne un petit peu de blanc sous le bouton).
la source
Pour une vue, vous pouvez définir l'opacité de la manière suivante.
La propriété
view.setAlpha(int)
est obsolète pour la version d'API supérieure à 11. Désormais, une propriété similaire.setAlpha(0.5f)
est utilisée.la source
Pour l'API <11 pour la couleur textView, j'ai fait ce qui suit:
Un peu encombrant, mais bon, ça marche :-)
la source
Je sais que cela a déjà un tas de réponses, mais j'ai trouvé que pour les boutons, il est simplement plus facile de créer vos propres sélecteurs .xml et de le mettre à l'arrière-plan dudit bouton. De cette façon, vous pouvez également changer son état lorsqu'il est enfoncé ou activé, etc. Voici un extrait rapide de celui que j'utilise. Si vous souhaitez ajouter une transparence à l'une des couleurs, ajoutez une première valeur hexadécimale (#XXcccccc). (XX == "alpha de couleur")
la source