Est-il possible de définir la marge ou le remplissage de l'image que nous avons ajoutée avec le android:drawableLeft
?
la source
Est-il possible de définir la marge ou le remplissage de l'image que nous avons ajoutée avec le android:drawableLeft
?
Comme mentionné cephus android:drawablePadding
ne forcera le remplissage entre le texte et le dessinable que si le bouton est suffisamment petit.
Lorsque vous disposez des boutons plus grands, vous pouvez les utiliser android:drawablePadding
conjointement avec android:paddingLeft
et android:paddingRight
pour forcer le texte et le dessiner vers l'intérieur vers le centre du bouton. En ajustant séparément le rembourrage gauche et droit, vous pouvez apporter des ajustements très détaillés à la disposition.
Voici un exemple de bouton qui utilise le remplissage pour rapprocher le texte et l'icône plus près qu'ils ne le seraient par défaut:
<Button android:text="@string/button_label"
android:id="@+id/buttonId"
android:layout_width="160dip"
android:layout_height="60dip"
android:layout_gravity="center"
android:textSize="13dip"
android:drawableLeft="@drawable/button_icon"
android:drawablePadding="2dip"
android:paddingLeft="30dip"
android:paddingRight="26dip"
android:singleLine="true"
android:gravity="center" />
passwordToggleDrawable
écart de remplissage gauche devient plus grand car il ne peut pas cibler uniquement la gauche à dessiner.TextView a une propriété android: drawablePadding qui devrait faire l'affaire:
la source
android:drawablePadding
ne créera un espace de remplissage entre le texte et le dessinable que si le bouton est suffisamment petit pour serrer les 2 ensemble. Si votre bouton est plus large que la largeur combinée (pour drawableLeft / drawableRight) ou la hauteur (pour drawableTop / drawableBottom), alors drawablePadding ne fait rien.Je me bats aussi avec ça en ce moment. Mes boutons sont assez larges et l'icône est suspendue sur le bord gauche du bouton et le texte est centré au milieu. Ma seule façon de contourner cela pour l'instant a été de cuire dans une marge sur le dessinable en ajoutant des pixels vierges au bord gauche de la toile avec Photoshop. Pas idéal, et pas vraiment recommandé non plus. Mais c'est ma solution provisoire pour l'instant, à moins de reconstruire TextView / Button.
la source
Oui. utilisez drawablePadding comme suit,
la source
Faites vos ressources dessinables.xml
la source
android:drawablePadding
est le moyen le plus simple de donner un rembourrage à une icône dessinable mais vous ne pouvez pas donner un rembourrage spécifique d'un côté commepaddingRight
oupaddingLeft
d'une icône dessinable. Pour y parvenir, vous devez creuser dedans. Et si vous appliquezpaddingLeft
oupaddingRight
àEdittext
alors il placera le rembourrage à tout leEdittext
long avec l'icône dessinable.la source
définir une forme pour votre edittext et lui donner un rembourrage Par exemple
Le rembourrage défini dans cette forme aidera à donner un rembourrage à drawableleft ou à droite ---------------------- Appliquer cette forme sur EditView
l'utilisation de cette forme définie comme arrière-plan donnera à votre EditText un style plus une marge à drawableLeft.
la source
android: drawablePadding est le moyen le plus simple de donner un rembourrage à une icône dessinable, mais vous ne pouvez pas donner un rembourrage spécifique d'un côté comme paddingRight ou paddingLeft d'icône dessinable. Pour y parvenir, vous devez creuser dedans. Et si vous appliquez paddingLeft ou paddingRight à Edittext, il placera le remplissage à Edittext entier avec une icône dessinable.
la source
remarque: layout_width doit être wrap_content et utiliser paddingLeft paddingRight drawablePadding pour contrôler l'écart. Si vous spécifiez la valeur layout_width, il y aura un écart entre l'icône et le texte, je pense qu'une fois que vous donnez à layout_width une valeur spécifiée, le remplissage mesurera.
la source
Je jetterai également ma réponse sur le ring. Si vous souhaitez effectuer cette opération par programme, vous pouvez procéder comme suit.
Cela ajoutera le rembourrage à la fin du dessinable où la fin signifiera gauche / droite selon que le téléphone est en LTR ou RTL.
la source
Au lieu d'
Button
utiliserLinearLayout
avecImageView
et à l'TextView
intérieur. Dans les articles pour enfants commeImageView
etTextView
utiliserandroid:duplicateParentState="true"
.la source
Vous devriez envisager d'utiliser la liste des couches
Créez un fichier dessinable comme celui-ci, nommez-le ic_calendar.xml
Sous le fichier de mise en page,
la source
Vous pouvez utiliser un rembourrage pour le bouton et vous pouvez jouer avec drawablePadding
vous pouvez utiliser un rembourrage spécifique en fonction de l'emplacement de votre dessinable, avec android: paddingLeft = "10dp" ou android: paddingBottom = "10dp" ou android: paddingRight = "10dp" ou android: paddingTop = "10dp"
la source
Vous pouvez utiliser
android:drawableLeft="@drawable/your_icon"
pour définir le dessin à afficher sur le côté gauche. Afin de définir un rembourrage pour le dessin, vous devez utiliserandroid:paddingLeft
ouandroid:paddingRight
pour définir le rembourrage gauche / droit respectivement.la source
Si la taille des ressources dessinables est fixe, vous pouvez faire comme ceci:
La clé ici est que:
C'est-à-dire que la taille de la ressource dessinable plus paddingRight est le paddingLeft.
Vous pouvez voir le résultat dans cet exemple
la source
la source
juste refaire à partir de:
à
la source
Essaie d'utiliser un rembourrage négatif
Comme:
la source