是否可以在EditText中更改图标的大小

Jon*_*tis 10 android android-layout android-studio

我正在创建一个包含用户名和密码字段的登录窗口,每个我都想放置图标.当我向EditText字段添加图标时,我无法更改图标的大小.

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

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

我的EditText代码:

<EditText
    android:id="@+id/user_name_edit_text"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="35dp"
    android:layout_marginRight="35dp"
    android:layout_marginTop="35dp"
    android:background="@drawable/custom_border_selector"
    android:drawablePadding="5dp"
    android:hint="@string/username"
    android:singleLine="true"
    android:textColor="#757575"
    android:textSize="15sp"
    android:drawableLeft="@drawable/ic_person_grey_24dp"
    />
Run Code Online (Sandbox Code Playgroud)

EditText visual:

在此输入图像描述

Red*_*der 15

如果您想在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>
Run Code Online (Sandbox Code Playgroud)

这是它的样子:

在此输入图像描述


Roh*_*5k2 6

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

public void setCompoundDrawablesWithIntrinsicBounds (
                                       int left, int top, int right, int bottom)
Run Code Online (Sandbox Code Playgroud)

将Drawables(如果有)设置为显示在文本的左侧,上方,右侧和下方.如果你不想在那里使用Drawable,请使用0.Drawables的界限将设置为其内在界限.

现在要添加填充,您可以使用它

 public void setCompoundDrawablePadding (int pad)
Run Code Online (Sandbox Code Playgroud)

设置复合drawable和文本之间填充的大小.

相关的XML属性:

android:drawablePadding
Run Code Online (Sandbox Code Playgroud)

更多信息在这里这里.您可能会发现许多其他有趣的方法.