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

时间:2010-11-26 00:24:03

标签: android

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

6 个答案:

答案 0 :(得分:394)

使用EditText上的android:drawableLeft属性。

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

答案 1 :(得分:27)

您可以按照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);

答案 2 :(得分:25)

如果您想使用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"/>

答案 3 :(得分:3)

使用:

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

答案 4 :(得分:0)

在EditText上使用android:drawbleStart属性

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

答案 5 :(得分:-1)

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

您还可以使用apk tool对facebook进行解压缩,然后查看其布局文件。