如何在EditText上添加图像

我想在EditTextdynamic添加图像。 可能吗?

如果有人知道,请给出示例代码。

如果这样的事情:

EditCheck

是你正在谈论的,那么你只需要设置Drawable{Right | Left | Top | Bottom} Drawable{Right | Left | Top | Bottom} Drawable{Right | Left | Top | Bottom}属性,或者调用相应的java命令。

 EditText text = (EditText)findViewById(R.id.text); text.setCompoundDrawables(null, null, getResources().getDrawable(R.drawable.check_box), null); 

在这里输入图像描述

使用框架布局很容易克服这一点。另一个优点是,你可以给button的点击事件。如果你使用setCompoundDrawables设置图标,你不能给点击事件。我已经在我的项目中实现了search栏删除和search图标。

 <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:drawableRightandroid:drawableLeft (取决于你喜欢的alignment图像)

 <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); 

您可以通过android:background="@drawable/img"将图像添加到EditText

如果你想通过使用九个补丁来修改样式,但是如果你想在你的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); 

创buildEditText一个实例

 EditText editText = (EditText) findViewById(R.id.EditText1); 

然后创build一个可绘制的图像实例

 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);设置图像setCompoundDrawablesWithIntrinsicBounds(Drawable left, Drawable top, Drawable right, Drawable bottom);

 editText.setCompoundDrawablesWithIntrinsicBounds(null, null, image, null); 

上面的这行代码将在EditText的右侧设置图像