2015-07-15 11 views
5

ich ein Symbol setzen wollen innerhalb ein EditText so habe ich wie folgt aus:EditText leftView Bild passen die Größe des EditText Android

android:drawableLeft="@drawable/search_icon" 

Das Problem ist, dass das Bild größer als die EditTex t so die EditText wird größer, um die Bildgröße anzupassen. Was ich will, ist das Gegenteil: Das Bild sollte die Größe ändern, um die EditText Höhe anzupassen, ist es möglich?

I (verzweifelt) versucht, mit:

android:adjustViewBounds="true" 

Aber offensichtlich ist es nicht funktioniert.

Gibt es eine Möglichkeit, dies zu tun?

+0

android Versuchen gesetzt links: layout_height = "wrap_content"? – sasikumar

+0

@sasikumar es ist bereits auf wrap_content eingestellt, habe ich auch versucht, eine benutzerdefinierte Höhe, aber das Bild wird abgeschnitten – Signo

+0

Ihre Bildgröße? – sasikumar

Antwort

1

Sie können dies einfach tun, indem Sie die Höhe des Bearbeitungstexts korrigieren.

<EditText 
    android:id="@+id/editText1" 
    android:layout_width="match_parent" 
    android:layout_height="50dp" 
    android:ems="10" 
    android:drawableLeft="@drawable/beautiful" 
    android:inputType="textPersonName" > 

    <requestFocus /> 

</EditText> 

Sie unter Code verwenden können, zum Ändern der Größe

Drawable d = imageView.getDrawable(); 
    Bitmap bitmap = ((BitmapDrawable) d).getBitmap(); 
    byte[] ba; 
    do { 
     ByteArrayOutputStream bao = new ByteArrayOutputStream(); 

     Log.e("BEFORE REDUCING", 
       bitmap.getHeight() + " " + bitmap.getWidth() + " " 
         + bitmap.getRowBytes() * bitmap.getHeight()); 

     bitmap.compress(Bitmap.CompressFormat.JPEG, 90, bao); 
     Log.e("After REDUCING", 
       bitmap.getHeight() + " " + bitmap.getWidth() + " " 
         + bitmap.getRowBytes() * bitmap.getHeight()); 
     ba = bao.toByteArray(); 
     if ((ba.length/1024) >= 650) { 
      bitmap = Bitmap.createScaledBitmap(bitmap, 
        (int) (bitmap.getWidth() * 0.95), 
        (int) (bitmap.getHeight() * 0.95), true); 

     } 

     Log.e("BYTE LENGTH", "" + ba.length/1024); 

    } while ((ba.length/1024) >= 650); 
+0

Das funktioniert nicht – rst

0

Sie in RelativeLayout wickeln können, auf das eine Image mit layout_height match_parrent

1

<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="#dd80aa" 
android:orientation="vertical"> 

<RelativeLayout 
    android:layout_width="363dp" 
    android:layout_height="wrap_content"> 

    <EditText 
     android:id="@+id/editText" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:hint="Enter text here" 
     android:marginLeft="50dp"/> 

    <ImageView 
     android:layout_width="wrap_contenta" 
     android:layout_height="wrap_content" 
     android:layout_alignParentEnd="true" 
     android:layout_alignParentRight="true" 
     android:layout_centerVertical="true" 
     android:layout_gravity="right" 
     android:src="@android:drawable/ic_menu_search"/> 

</RelativeLayout> 


</LinearLayout>