如何在Android的EditText视图中添加图标?

Adh*_*ham 132 android

我想EditText在左边缘中添加一个"搜索"图标?比如Facebook Android应用中的搜索框?

mar*_*igo 406

使用android:drawableLeftEditText上的属性.

<EditText
    ...     
    android:drawableLeft="@drawable/my_icon" />
Run Code Online (Sandbox Code Playgroud)

  • 另外,使用`drawablePadding`属性调整填充. (27认同)
  • 考虑到搜索标题,这只是我预期的解决方案. (20认同)
  • 抱歉不清楚的问题,我想添加一个按钮,所以当我点击它时,它会做一些动作 (3认同)
  • @KalpeshLakhani:根据android设计指南,edittext和drawable通常应为32dp:http://developer.android.com/design/style/metrics-grids.html (2认同)

Pet*_*tai 29

您可以按照marcos的建议在XML中设置drawableLeft ,但您可能还希望以编程方式设置它 - 例如,在响应事件时.为此,请使用方法setCompoundDrawablesWithIntrincisBounds(int,int,int,int):

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

// Set drawables for left, top, right, and bottom - send 0 for nothing
editTxt.setCompoundDrawablesWithIntrinsicBounds(R.drawable.myDrawable, 0, 0, 0);
Run Code Online (Sandbox Code Playgroud)


Jon*_*han 26

如果你想使用Android的默认drawable,你可以使用 @android:drawable/ic_menu_search像这样:

<EditText android:id="@+id/inputSearch"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:drawableLeft="@android:drawable/ic_menu_search"
    android:hint="Search product.."
    android:inputType="textVisiblePassword"/>
Run Code Online (Sandbox Code Playgroud)


Mah*_*raa 6

用 :

<EditText
    ..     
    android:drawableStart="@drawable/icon" />
Run Code Online (Sandbox Code Playgroud)