Android bouton avec l'icône et le texte
J'ai des boutons comme ça dans mon application:
<Button
android:id="@+id/bSearch"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="16dp"
android:text="Search"
android:textSize="24sp" />
Je suis en train de créer un bouton avec un texte et une icône.
android:drawableLeft ne fonctionne pas pour moi (il a Peut-être, mais je ne sais pas comment mettre un max de la hauteur de l'icône).
J'ai donc créé un LinearLayout avec une ImageView et un TextView et fait-il agir comme un bouton:
<LinearLayout
android:id="@+id/bSearch2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@android:drawable/btn_default"
android:clickable="true"
android:padding="16dp"
android:orientation="horizontal" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="5dp"
android:adjustViewBounds="true"
android:maxHeight="30dp"
android:maxWidth="30dp"
android:scaleType="fitCenter"
android:src="@drawable/search_icon" />
<TextView
android:id="@+id/tvSearchCaption"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:textSize="24sp"
android:paddingRight="30dp"
android:gravity="center"
android:text="Search" />
</LinearLayout>
Mon nouveau bouton est exactement ce que je veux (taille de la police, l'icône et le texte de l'emplacement).
Mais il ne ressemble pas à mes boutons par défaut:
J'ai donc essayé, pour changer l'arrière-plan et la couleur du texte de mon Bouton nouveau:
Button Search = (Button) findViewById(R.id.bSearch);
LinearLayout bSearch2 = (LinearLayout) findViewById(R.id.bSearch2);
bSearch2.setBackground(bSearch.getBackground());
TextView tvSearchCaption = (TextView)findViewById(R.id.tvSearchCaption);
tvSearchCaption.setTextColor(bSearch.getTextColors().getDefaultColor());
Cela donne un résultat étrange, mon vieux bouton, se foiré:
Quand j'ai changer l'ordre de ces deux boutons dans le XML, de sorte que le "nouveau bouton" va d'abord, il fait un autre résultat étrange:
Maintenant, j'ai remarqué, que quand j'ai essayer d'appuyer sur le vieux bouton, la nouvelle se pressé.
Des idées?
Vous devez vous connecter pour publier un commentaire.
Essayer celui-ci.
minSdkVersion 14 targetSdkVersion 18
je n'ai pas le crash comme vous.Pour ajouter une image à gauche, à droite, en haut ou en bas, vous pouvez utiliser des attributs comme ceci:
L'exemple de code est donné ci-dessus. Vous pouvez également obtenir cette aide par rapport de mise en page.
android:drawableStart
au lieu de Gauche, etandroid:drawableEnd
au lieu de Droite.Pour ceux qui cherchent à le faire dynamiquement puis
setCompoundDrawables(Drawable left, Drawable top, Drawable right, Drawable bottom)
sur les boutons de l'objet de l'aider.Échantillon
@Liem Vo est correct, mais si vous utilisez de Fin/Début au lieu de Droite/Gauche, android studio, cela sera apprécié 🙂