2016-02-26 10 views
5

Ich erstelle ein Login-Fenster mit Benutzernamen und Passwort Felder und in jedem möchte ich Symbole setzen. Wenn ich dem EditText-Feld ein Symbol hinzufüge, kann ich die Größe des Symbols nicht ändern.Ist es möglich, die Größe des Symbols in EditText zu ändern

Das Symbol befindet sich im EditText-Feld, weil ich den EditText-Hintergrund ändern möchte, wenn es fokussiert ist.

Ich habe versucht, Symbol und EditText-Ansicht innerhalb LinearLayout zu setzen, aber ich konnte Layouthintergrund nicht ändern, wenn EditText fokussiert ist.

Mein EditText Code:

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

enter image description here

+0

Überprüfen Sie diesen Link: http: //stackoverflow.com/questions/20250638/how-to-create-edittext-hint-as-text-with-image-in-android – Mrunal

+0

@ Rohit5k2 Es dumm klingen von mir, aber ich habe nicht daran gedacht, danke. Noch eine Frage, ich konnte keine Methode finden, Padding oder Rand für das Bild hinzuzufügen? Ich habe versucht, es zu googeln, ein paar Stunden und keine nützlichen Informationen. – JonasSeputis

+0

@ JonasSeputis: Bitte überprüfen. – Rohit5k2

Antwort

5

Sie können das Symbol ändern und ein kleineres auf Fokus verwenden. Dies ist die Methode, die Sie verwenden sollten.

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

Setzt die Drawables (falls vorhanden) auf der linken Seite erscheinen von oben, rechts von und unter dem Text. Verwenden Sie 0, wenn Sie dort kein Drawable möchten. Die Grenzen der Drawables werden auf ihre eigenen Grenzen gesetzt.

Jetzt padding hinzufügen Sie diese

public void setCompoundDrawablePadding (int pad) 

Legt die Größe des Polsters zwischen der Verbindung Drawables und dem Text verwenden können.

Verwandte XML-Attribute:

android:drawablePadding 

Weitere Informationen here und here. Es gibt viele andere Methoden, die Sie interessant finden könnten.

10

Falls Sie möchten, das Problem in xml zu lösen, hier Beispielcode, wo Sie Ihre Bildgröße/padding manipulieren kann:

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

Und hier ist, wie es aussieht:

enter image description here

1

Ein besserer Weg als die Einstellung durch Java wäre, indem Sie es wie folgt in einem Layered Drawable setzen.

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

es scheint nicht auf API 19 zu arbeiten? – Sam

Verwandte Themen