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

我想添加一个“搜索”图标出现在一个 EditText的左边缘?比如 Facebook Android 应用程序中的搜索框?

212229 次浏览

使用 EditText 上的 android:drawableLeft属性。

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

使用相对布局并将按钮设置为在编辑文本视图的左侧对齐,并将文本视图的左边填充设置为按钮的大小。我想不出一个不用硬编码填充的好方法:/

你也可以使用 APK 工具来解压 facebook apk 并查看它的布局文件。

您可以按照 Marcos的建议在 XML 中设置 draableLeft,但是您也可能希望以编程方式设置它——例如在响应事件时。为此,使用方法 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"/>

用途:

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

在 EditText 上使用 开始属性

    <EditText
...
android:drawableStart="@drawable/my_icon" />
` <EditText
android:layout_width="match_parent"
android:layout_height="40dp"
android:background="@color/white"
android:drawableStart="@android:drawable/ic_menu_search"
android:hint=" Search" />`