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

我想添加一个“search”图标出现在左边的EditText里面? 如Facebook Android应用程序中的search框?

在EditText上使用android:drawableLeft属性。

 <EditText ... android:drawableLeft="@drawable/my_icon" /> 

您可以按照marcos的build议在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); 

如果你想使用Android的默认绘图,你可以使用@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"/> 

使用相对布局,并将button设置为在编辑文本视图的左侧alignment,并将文本视图的左侧填充设置为button的大小。 我想不出一个好的方法来做到这一点没有硬编码的填充:/

您也可以使用apk工具来解压缩Facebook apk并查看其布局文件。

使用 :

 <EditText .. android:drawableStart="@drawable/icon" />