Ответ 1
Вместо android:drawableLeft="@drawable/name_icon_edittext"
создайте отдельный ImageView
для name_icon
.
Таким образом, у вас больше контроля над размещением на layout
Примечание: Я предполагаю, что ваш layout
есть RelativeLayout
У меня есть одна контактная форма, в которой я хотел бы добавить некоторые значки в текст редактирования для лучшего просмотра. Я хочу создать EditText, как показано ниже.
У меня есть EditText, как показано ниже. И я получил результат. Я хочу, чтобы изображение было абсолютно на левой стороне, как показано на рисунке выше. Я знаю, что внутри EditText использует изображение Nine Patch, и я думаю, поэтому результат - это нечто другое. Кто-нибудь знает, как это решить?
<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" />
Вместо android:drawableLeft="@drawable/name_icon_edittext"
создайте отдельный ImageView
для name_icon
.
Таким образом, у вас больше контроля над размещением на layout
Примечание: Я предполагаю, что ваш layout
есть RelativeLayout
если вы хотите добавить некоторое пространство между текстом и изображением, используйте свойство'drawablePadding 'в xml
android:drawablePadding="10dp"
вот полный пример того, как использовать в edittext в xml файле
<EditText
android:id="@+id/edittext"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/ic_left"
android:drawablePadding="10dp" />
Вы можете использовать свойство android:drawablePadding="10dp"
в файле XML. Там нет необходимости создавать отдельный imagview для значка.
Немного устаревший, но для дальнейшего использования может быть:
Я бы сделал изображение с 9 патчами сам с желаемым внешним видом, сохраняя пропорции и все, кроме значка, поэтому вы можете добавить его (и повторно использовать фон) с помощью свойства drawableLeft
EditText
. Таким образом, только средняя часть изображения будет растянута, а остальная часть останется прежней.