Я хочу динамически добавлять изображение в EditText
. Является ли это возможным?
если кто-нибудь знает, пожалуйста, дайте пример кода для этого.
Я хочу динамически добавлять изображение в EditText
. Является ли это возможным?
если кто-нибудь знает, пожалуйста, дайте пример кода для этого.
Если что-то вроде этого:
это то, о чем вы говорите, тогда вам просто нужно либо установить свойство Drawable{Right | Left | Top | Bottom}
в xml, либо вызвать соответствующую java-команду.
EditText text = (EditText)findViewById(R.id.text);
text.setCompoundDrawables(null, null, getResources().getDrawable(R.drawable.check_box), null);
Использование макета кадра очень легко преодолеть это. Еще одно преимущество заключается в том, что вы можете давать события click для кнопок. Если вы устанавливаете значки с помощью setCompoundDrawables, вы не можете давать события click.I реализовали в моем проекте, что поиск бар имеет значок удаления и поиска.
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<EditText
android:id="@+id/search"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/search_bar"
android:drawablePadding="8dp"
android:paddingLeft="30dp"
android:paddingRight="10dp"
android:inputType="text"
android:maxLines="1">
<requestFocus />
</EditText>
<Button
android:id="@+id/searchBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left|center_vertical"
android:layout_margin="10dp"
android:background="@drawable/icon_magnify" />
<Button
android:id="@+id/delete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right|center_vertical"
android:layout_margin="8dp"
android:background="@drawable/icon_remove" />
</FrameLayout>
с помощью android:drawableRight
или android:drawableLeft
(зависит от предпочтительного выравнивания изображения)
<EditText
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:id="@+id/searchedTxt"
android:width="200dp"
android:layout_alignParentRight="true"
android:drawableRight="@android:drawable/ic_menu_search"
android:drawablePadding="@dimen/dimen_10dp"
/>
вы также можете попробовать это
SpannableString ss = new SpannableString("abc\n");
Drawable d = img.getDrawable();
d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight());
ImageSpan span = new ImageSpan(d, ImageSpan.ALIGN_BASELINE);
ss.setSpan(span, 0, 3, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
editT.setText(ss);
Вы можете использовать setCompoundDrawablesWithIntrinsicBounds (int left, int top, int right, int bottom).
EditText text = (EditText) findViewById(R.id.edtTest);
text.setText("Test");
text.setCompoundDrawablesWithIntrinsicBounds(null, null,
getResources().getDrawable(R.drawable.myDrawable, null), null);
Вы можете добавить изображение в EditText
через android:background="@drawable/img"
.
Если вы хотите изменить стиль, используя девять патчей или иначе, но если вы хотите добавить небольшое изображение в левой части вашего EditText
, рассмотрите возможность использования android:drawableRight="@drawable/icon"
.
расширить класс edittext и сделать код, так как вы хотите, чтобы он был
public void setImage(String imageResource) {
int position = Selection.getSelectionStart(MyEditText.this
.getText());
Spanned e = Html.fromHtml("<img src=\"" + imageResource + "\">",
imageGetter, null);
MyEditText.this.getText().insert(position, e);
}
Вы можете использовать:
editText.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.pic_name, 0);
как предлагается здесь:
Вызов setCompoundDrawables() не отображает Compound Drawable
Вы можете попробовать это, если находитесь в классе адаптера
holder.myEditText.setCompoundDrawablesWithIntrinsicBounds(null, null,
_context.getResources().getDrawable(R.drawable.ic_launcher),
null);
и Вы можете попробовать это, если находитесь в классе активности
myEditText.setCompoundDrawablesWithIntrinsicBounds(null, null,
getResources().getDrawable(R.drawable.ic_launcher),
null);
Создайте экземпляр EditText
EditText editText = (EditText) findViewById(R.id.EditText1);
Затем создайте экземпляр с возможностью рисования
Drawable image = getResources().getDrawable(R.drawable.ic_warning); // API 21 and below.
ИЛИ
Drawable image = getDrawable(R.drawable.ic_warning); // API 22 and above.
Затем установите изображение, вызвав setCompoundDrawablesWithIntrinsicBounds(Drawable left, Drawable top, Drawable right, Drawable bottom);
editText.setCompoundDrawablesWithIntrinsicBounds(null, null, image, null);
Вышеуказанная строка установит изображение в правой части EditText