web-dev-qa-db-fra.com

Définir l'image sur le côté gauche de EditText dans Android

J'ai un formulaire de contact dans lequel je voudrais ajouter quelques icônes à mon texte édité pour une meilleure apparence. Je veux créer EditText quelque chose comme ci-dessous.

enter image description here

J'ai EditText comme ci-dessous. Et j'ai le résultat quelque chose comme. Je veux que l'image soit absolument à gauche comme dans l'image ci-dessus. Je sais qu'en interne, EditText utilise une image à neuf correctifs et je pense que c'est pourquoi le résultat est différent. Quelqu'un peut-il savoir comment résoudre ce problème?

enter image description here

<EditText
            Android:id="@+id/name"
            Android:layout_width="fill_parent"
            Android:layout_height="51dip"
            Android:hint="@string/name"
            Android:inputType="text"
            Android:drawableLeft="@drawable/name_icon_edittext" />
11
Scorpion

Au lieu d'utiliser Android:drawableLeft="@drawable/name_icon_edittext", créez separImageViewpour le name_icon. De cette façon, vous avez plus de contrôle pour le placer sur la layoutname__

Remarque: Je suppose que votre layoutest RelativeLayoutname__

13
Tomer Mor

si vous voulez ajouter de l'espace entre votre texte et votre image, utilisez la propriété 'DrawablePadding' en XML

Android:drawablePadding="10dp"

voici un exemple complet comment utiliser edittext dans un fichier xml

             <EditText
                Android:id="@+id/edittext"
                Android:layout_width="match_parent"
                Android:layout_height="wrap_content"
                Android:drawableLeft="@drawable/ic_left"
                Android:drawablePadding="10dp" />
10
Faris Jameel

Vous pouvez utiliser la propriété Android:drawablePadding="10dp" dans le fichier xml. Il n'est pas nécessaire de créer une image séparée pour l'icône.

1
Milind App

Un peu vieux, mais pour référence future peut-être:

Je créerais moi-même une image de 9 correctifs avec l'apparence souhaitée, en conservant les proportions et tout sauf l'icône, afin que vous puissiez l'ajouter vous-même (et réutiliser l'arrière-plan) avec la propriété drawableLeft de EditText. De cette façon, seule la partie centrale de l'image sera étirée, mais le reste ne changera pas.

0
Armando