在EditText中居中Drawable和Text

时间:2015-03-04 11:41:42

标签: android android-edittext android-drawable

我想在EditText中创建drawable和text center。文本居中,但可绘制不是。我想要这样的东西: http://i.imgur.com/cacxR2C.jpg?1

请帮忙。这就是我到目前为止所做的事情

 <EditText 
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="Username"
    android:layout_marginLeft="15dp"
    android:layout_marginRight="15dp"
    android:gravity="center_horizontal"
    android:drawableLeft="@drawable/lol2"
    />

当用户在EditText中输入内容时,如果文本是lenghty,则drawable应该自己向左移动。

4 个答案:

答案 0 :(得分:11)

你可以做这样的事情

<RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:layout_marginLeft="15dp"
        android:layout_marginRight="15dp"
        android:background="@android:drawable/editbox_background"
        >

        <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:hint="Username"
            android:background="@null"
            android:gravity="center"
            android:drawableLeft="@drawable/ic_launcher"
            />
    </RelativeLayout>

enter image description here enter image description here

答案 1 :(得分:2)

这对我有用:

{{1}}

这里的踢球者是你对宽度的wrap_content,然后对齐文本,然后按照你想要的方式居中,然后在编辑文本的每一端添加填充。

这会将drawable推到文本的开头,但仍然可以扩展您的编辑文本背景。

答案 2 :(得分:0)

而不是

  

机器人:drawableLeft =&#34; @可绘制/ lol2&#34;

尝试使用

  

机器人:drawableStart =&#34; @可绘制/ lol2&#34;

答案 3 :(得分:0)

基本上使用重力属性来应用对齐布局内容的更改,以便您可以将重力放在中心以对齐中心和center_vertical中的内容以将内容对齐到左侧,将重力对齐到center_horizo​​ntal以将内容放在水平中心。即

android:gravity="center"