2015-12-31 15 views
9

Ho un immagine. Ho bisogno di aggiungere una linea verticale in EditText proprio accanto alla mia drawableLeft come in questo esempio:
Android EditText disegna una linea divisoria tra il suo drawable e il suo testo

enter image description here

modo più semplice che mi viene in mente è quello di aggiungere quella linea nella mia immagine drawable. Ma generalmente c'è un altro modo per farlo?

+1

Qualsiasi altro modo per ottenere questo risultato sarà più complicato. Il modo migliore è aggiungere questa linea solo in drawable. – priyanka

risposta

8
  1. Creare una forma angolo arrotondato rettangolare res/drawable/shape.xml

    <?xml version="1.0" encoding="utf-8"?> 
    <shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <stroke android:width="3dip" android:color="@android:color/darker_gray" /> 
    <corners android:radius="10dip"/> 
    <padding android:left="10dip" android:top="10dip" android:right="10dip"  android:bottom="10dip" /> 
    </shape> 
    
  2. Ora creare un layout di

    <?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@drawable/shape" 
    android:gravity="center_vertical"> 
    
    
    <ImageView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/imageView" 
    android:src="@drawable/ic_launcher"/> 
    
    <View 
    android:layout_width="2dp" 
    android:layout_height="match_parent" 
    android:background="@android:color/darker_gray" 
    android:layout_marginLeft="10dp"/> 
    
    <EditText 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/editText" 
    android:layout_weight="1" 
    android:background="@null" 
    android:layout_marginLeft="10dp" 
    android:hint="Your bitcoin address here"/> 
    
    
    </LinearLayout> 
    
  3. Ho impostato il layout di sfondo lineare con th forma rettangolare arrotondata. Sembra esattamente come l'anteprima dell'immagine di urs.

+0

Questo funziona completamente. Non ho mai pensato di farlo in questo modo. Grazie – abeikverdi

+0

@abeikverdi: contento che ti abbia aiutato :) Plz accetta la risposta. – kevz

0

Prova questo, il problema risolto

Nel file .xml,

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_margin="5dp" 
     android:background="@drawable/customborder" 
     android:gravity="center|left" 
     android:minHeight="40dip" 
     android:orientation="horizontal" 
     android:padding="5dip" 
     android:weightSum="2"> 

     <LinearLayout 
      android:layout_width="0dip" 
      android:layout_height="wrap_content" 
      android:layout_weight="0.2" 
      android:gravity="center" 
      android:orientation="vertical"> 

      <ImageView 
       android:id="@+id/img_clear_to" 
       android:layout_width="30dip" 
       android:layout_height="30dip" 
       android:src="@drawable/ic_action_delete" /> 
     </LinearLayout> 

     <View 
      android:id="@+id/vvv1" 
      android:layout_width="2dp" 
      android:layout_height="match_parent" 
      android:background="@color/colorAccent" /> 

     <LinearLayout 
      android:layout_width="0dip" 
      android:layout_height="wrap_content" 
      android:layout_weight="1.8" 
      android:orientation="vertical"> 

      <TextView 
       android:id="@+id/text_to" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:clickable="true" 
       android:padding="5dip" 
       android:text="@string/text_to" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:textColor="@color/black" 
       android:textSize="@dimen/font_normal_size" /> 
     </LinearLayout> 


    </LinearLayout> 
</LinearLayout> 

customborder.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
    <corners 
     android:radius="2dp" 
     android:topRightRadius="0dp" 
     android:bottomRightRadius="0dp" 
     android:bottomLeftRadius="0dp" /> 
    <stroke 
     android:width="1dp" 
     android:color="@android:color/black" /> 
</shape> 
3

È possibile creare un layout e addetto alla editText come una proprietà

android:drawableRight="@android:drawable/your_layout" 

ad esempio

<EditText 
    android:width="match_parent" 
    android:drawableLeft="@android:drawable/your_layout" 
/> 

nel file your_layout.xml si può mettere tutto quello che vuoi.

Si prega di verificare this

+0

ah giusto. Posso passare un drawable lì. Assolutamente mancato! Questo è figo. Sarà fantastico se aggiungi un semplice codice per your_layout.xml – abeikverdi

0

abbastanza semplice!

Basta aggiungere un 'FrameLayout'

<FrameLayout 
      android:id="@+id/vertical_divider" 
      android:layout_width="2dp" 
      android:layout_height="48dp" 
      android:layout_toEndOf="@+id/<your_object>" 
      android:layout_toRightOf="@+id/<your_object>" 
      android:background="@color/grey" /> 

Sostituire <your_object> con la vostra immagine drawable.

Problemi correlati