Boutons personnalisés dans Android: Comment obtenir bordure / bord / cadre lorsque je lis l'arrière-plan de xml?
Android à l'aide de Formes en xml, j'ai défini un gradient qui je utiliser comme arrière-plan pour un bouton.
Ce toutes les œuvres de nice, mais il n'y a pas de bordure qui entoure le bouton. Je voudrais qu'elle ressemble à l'normale Android bouton mais j'ai besoin de plus de flexibilité pour contrôler la couleur et le look.
La forme est définie comme suit:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient android:startColor="#FFFFFF"
android:endColor="#00FF00"
android:angle="270" />
<corners android:radius="3dp" />
<stroke android:width="5px" color="#000000" />
</shape>
Je m'attends à la frontière pour être défini dans le fichier xml. Pourquoi n'est-il pas d'un "coup" de résoudre ce problème? L'avc ne semble pas faire quoi que ce soit.
J'ai vérifié le Développeur Android spec, mais ne pouvait pas y trouver la réponse:
http://developer.android.com/guide/topics/resources/drawable-resource.html
J'ai aussi regardé à travers toutes les propriétés de l'Android Bouton, mais comme prévu il n'y a pas de paramètre, probablement car il est intégré dans la normale Android bouton. Btw, j'ai vérifié ImageButton propriétés de trop.
Quelqu'un peut s'il vous plaît aider?
Je sais qu'il y a l'alternative de faire une image avec une bonne bords et utiliser un ImageButton, mais il faudrait vraiment un moyen de résoudre ce problème par programmation.
Merci!
Anna
source d'informationauteur Anna
Vous devez vous connecter pour publier un commentaire.
J'ai eu ce problème il y a longtemps. Bien que je n'ai pas très bien pourquoi je l'ai fait chaque décision, la façon dont je l'ai résolu était d'utiliser un calque de forme de liste. Cela vous permet de pile d'une forme sur l'autre. Par exemple, le code XML suivant crée une forme avec une solide contour noir 2px large, avec un " petit gris au blanc et au gris de gradient à travers le moyen:
Si vous voulez être en mesure de modifier la couleur de façon dynamique lors de l'exécution, les choses deviennent un beaucoup messier. Encore une fois, les détails de pourquoi j'ai eu à faire les choses d'une certaine façon sont brumeux, mais j'ai fini par avoir à créer un affichage personnalisé de la classe qui contient une coutume ShapeDrawable. J'ai commencé en regardant les exemples de la ApiDemos application qui vient avec le kit de développement - c'est une très bonne ressource.
EDIT: une Autre raison de votre course peut ne pas apparaître, c'est que vous avez oublié le
android:
avant le color="...." bit.J'ai eu le même problème, ce que j'ai remarqué est l'accident vasculaire cérébral n'est pas l'application de bouton à la frontière au moment de la conception, mais au moment de l'exécution, je vois la frontière.
Je jst a utilisé le suivant du même code
que steve hanley dit abvoe vous manquez le android: pour l'attribut de couleur.
Espère que cela aide quelqu'un....
Probablement beaucoup trop tard, mais vous devez ajouter un supplément de ff avant la couleur.
<stroke android:width="5px" color="#ff000000" />
Accueille
Utilisation ImageButton
Utilisation drawable sélecteur de ImageButton et de définir les propriétés de votre
Ajoutant
stroke color #56390a
permettra de résoudre le problème.