2016-02-26 9 views
5

Sto creando una finestra di login con i campi username e password e in ognuno vorrei mettere le icone. Quando aggiungo un'icona al campo EditText non posso modificare la dimensione dell'icona.E 'possibile modificare le dimensioni dell'icona all'interno di EditText

L'icona si trova nel campo EditText perché voglio modificare lo sfondo di EditText quando è focalizzato.

Ho provato a mettere l'icona e la vista EditText all'interno di LinearLayout, ma non ho potuto cambiare lo sfondo del layout quando EditText è focalizzato.

Il mio codice 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 visiva:

enter image description here

+0

controllare questo link: http: //stackoverflow.com/questions/20250638/how-to-create-edittext-hint-as-text-with-image-in-android – Mrunal

+0

@ Rohit5k2 Sarà sembrare stupido di me, ma non ci ho pensato, grazie. Ancora una domanda, non sono riuscito a trovare il metodo per aggiungere padding o margine per l'immagine? Ho provato a google, poche ore e nessuna informazione utile. – JonasSeputis

+0

@JonasSeputis: per favore controlla. – Rohit5k2

risposta

5

È possibile modificare l'icona e utilizzare una più piccola sul fuoco. Questo è il metodo che dovresti usare.

public void setCompoundDrawablesWithIntrinsicBounds (
             int left, int top, int right, int bottom) 

Imposta le drawable (se presente) per apparire alla sinistra, al di sopra, a destra di, e sotto il testo. Usa 0 se non vuoi un Drawable lì. I limiti dei Drawables saranno impostati sui loro limiti intrinseci.

ora per aggiungere imbottitura è possibile utilizzare questo

public void setCompoundDrawablePadding (int pad) 

Imposta la dimensione della spaziatura tra le drawable composti e il testo.

XML correlati Attributi:

android:drawablePadding 

Maggiori informazioni here e here. Ci sono molti altri metodi che potresti trovare interessanti.

10

Nel caso in cui si desidera risolvere il problema in xml, ecco il codice di esempio in cui è possibile manipolare le dimensioni dell'immagine/padding:

<!-- 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> 

E qui è come sembra:

enter image description here

1

Un modo migliore di quello impostato da java sarebbe impostarlo all'interno di un drawable a livelli come segue.

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] 
+0

non sembra funzionare su API 19? – Sam

Problemi correlati