Android 是否可以更改EditText内图标的大小

Android 是否可以更改EditText内图标的大小,android,android-layout,android-studio,Android,Android Layout,Android Studio,我正在创建一个带有用户名和密码字段的登录窗口,我想在每个窗口中放置图标。当我将图标添加到EditText字段时,我无法更改图标的大小 图标位于EditText字段内,因为我想在聚焦时更改EditText背景 我试图将图标和EditText视图放在LinearLayout中,但当EditText处于焦点时,我无法更改布局背景 我的编辑文本代码: 编辑文本视觉: 您可以更改图标并在焦点上使用较小的图标。这是你应该使用的方法 将可绘图项(如果有)设置为显示在文本的左侧、上方、右侧和下方。如果您不

我正在创建一个带有用户名和密码字段的登录窗口,我想在每个窗口中放置图标。当我将图标添加到EditText字段时,我无法更改图标的大小

图标位于EditText字段内,因为我想在聚焦时更改EditText背景

我试图将图标和EditText视图放在LinearLayout中,但当EditText处于焦点时,我无法更改布局背景

我的编辑文本代码:


编辑文本视觉:

您可以更改图标并在焦点上使用较小的图标。这是你应该使用的方法

将可绘图项(如果有)设置为显示在文本的左侧、上方、右侧和下方。如果您不想在此处绘制图形,请使用0。可绘制边界将设置为其固有边界

现在要添加填充,可以使用以下命令

设置复合绘图和文本之间的填充大小

相关的XML属性:

android:drawablePadding

更多信息和信息。您可能会发现还有许多其他有趣的方法。

如果您想用xml解决这个问题,下面是一些示例代码,您可以在其中操作图像大小/填充:

<!-- USERNAME INPUT -->
<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/edit_text_selector">

    <!-- INPUT -->
    <EditText
        android:id="@+id/username_input"
        android:layout_marginLeft="-10dp"
        android:layout_toRightOf="@+id/username_icon"
        android:text=""
        android:hint="Username"
        android:padding="10dp"
        android:background=""
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

    <!-- ICON -->
    <ImageView
        android:padding="3dp"
        android:id="@+id/username_icon"
        android:src="@drawable/perm_group_personal_info"
        android:layout_width="40dp"
        android:layout_height="40dp" />

</RelativeLayout>

下面是它的样子:


比java设置更好的方法是将其设置在一个分层的可绘制文件中,如下所示

Layered list drawable is as under :

    <?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item

        >
        <shape>
            <solid android:color="@color/bg_row_drop_completed"/>
            <size android:width="96dp"
                />
            <padding android:top="-15dp"
                android:bottom="-15dp"/>
            <corners android:topLeftRadius="@dimen/btn_add_bg_radius_purple" android:topRightRadius="@dimen/btn_add_bg_radius_purple"/>
        </shape>
    </item>
    <item
        >
        <bitmap android:src="@drawable/_ic_arrow_drop_up_normal" android:gravity="center_vertical"
            ></bitmap>
    </item>
</layer-list>
可绘制的分层列表如下所示:

查看此链接:@Rohit5k2我听起来很愚蠢,但我没有想到,谢谢。还有一个问题,我找不到为图像添加填充或边距的方法?我试着用谷歌搜索了几个小时,但没有有用的信息。@JonasPutis:请检查。@Rohit5k2您的回答很有帮助,谢谢!
android:drawablePadding
<!-- USERNAME INPUT -->
<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/edit_text_selector">

    <!-- INPUT -->
    <EditText
        android:id="@+id/username_input"
        android:layout_marginLeft="-10dp"
        android:layout_toRightOf="@+id/username_icon"
        android:text=""
        android:hint="Username"
        android:padding="10dp"
        android:background=""
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

    <!-- ICON -->
    <ImageView
        android:padding="3dp"
        android:id="@+id/username_icon"
        android:src="@drawable/perm_group_personal_info"
        android:layout_width="40dp"
        android:layout_height="40dp" />

</RelativeLayout>
Layered list drawable is as under :

    <?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item

        >
        <shape>
            <solid android:color="@color/bg_row_drop_completed"/>
            <size android:width="96dp"
                />
            <padding android:top="-15dp"
                android:bottom="-15dp"/>
            <corners android:topLeftRadius="@dimen/btn_add_bg_radius_purple" android:topRightRadius="@dimen/btn_add_bg_radius_purple"/>
        </shape>
    </item>
    <item
        >
        <bitmap android:src="@drawable/_ic_arrow_drop_up_normal" android:gravity="center_vertical"
            ></bitmap>
    </item>
</layer-list>