2016-02-26 36 views
5

Kullanıcı adı ve parola alanlarına sahip bir giriş penceresi oluşturuyorum ve her birinde simgeleri koymak istiyorum. EditText alanına simge eklediğimde, simgenin boyutunu değiştiremiyorum.EditText içindeki simge boyutunu değiştirmek mümkün mü

Simge EditText alanının içinde çünkü odaklandığında EditText arka planını değiştirmek istiyorum.

LinearLayout içine simge ve EditText görünümü koymaya çalıştım, ancak EditText odaklandığında düzen arka planını değiştiremedim.

Benim EditText kodu: Görsel

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

enter image description here

+0

Kontrol Bu linki: http: //stackoverflow.com/questions/20250638/how-to-create-edittext-hint-as-text-with-image-in-android – Mrunal

+0

@ Aptalca çalacaktır Rohit5k2 benden, ama düşünmedim, teşekkürler. Bir soru daha, görüntü için dolgu veya kenar boşluğu ekleme yöntemi bulamadım? Bunu google, birkaç saat ve hiçbir yararlı bilgi için çalıştı. – JonasSeputis

+0

@JonasSeputis: Lütfen kontrol edin. – Rohit5k2

cevap

5

Sen simgesini değiştirebilir ve odak üzerinde bir küçüğü kullanabilirsiniz. Kullanmanız gereken yöntem budur.

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

Drawables (varsa) sağında, yukarıda, solunda görünür ve metnin altına ayarlar. Orada bir Çizim yapmak istemiyorsanız 0 kullanın. Drawables 'sınırları, kendi sınırlarına göre ayarlanacaktır. Şimdi

bu

public void setCompoundDrawablePadding (int pad) 

bileşik drawables ve metin arasındaki doldurma boyutunu ayarlar kullanabilirsiniz dolgu ekleyin.

İlgili XML Nitelikler:

android:drawablePadding 

fazla bilgi here ve here. İlginç bulabileceğiniz birçok başka yöntem var. Eğer xml sorunu çözmek istiyorum durumda

10

, burada resim boyutu/dolgu işleyebilirsiniz örnek kod:

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

Ve burada ne kadar benziyor geçerli:

enter image description here

1

Java ile ayarlamadan daha iyi bir yol, aşağıdaki gibi katmanlı bir çizimin içine yerleştirilmesiyle olur.

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

API 19 üzerinde çalışmıyor gibi görünüyor? – Sam

İlgili konular