我正在创建一个包含用户名和密码字段的登录窗口,每个我都想放置图标。当我向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"
/>
EditText visual:
答案 0 :(得分:13)
如果您想解决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>
以下是它的样子:
答案 1 :(得分:6)
您可以更改图标并在焦点上使用较小的图标。这是你应该使用的方法。
public void setCompoundDrawablesWithIntrinsicBounds (
int left, int top, int right, int bottom)
将Drawables(如果有)设置为显示在文本的左侧,上方,右侧和下方。如果你不想在那里使用Drawable,请使用0。 Drawables&#39;边界将设置为其内在边界。
现在要添加填充,您可以使用此
public void setCompoundDrawablePadding (int pad)
设置复合drawable和文本之间填充的大小。
相关的XML属性:
android:drawablePadding
答案 2 :(得分:1)
比java设置更好的方法是将It设置在分层drawable中,如下所示。
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>[enter image description here][1]