2015-12-31 2 views
9

Ich habe ein EditText mit einem drawableLeft Bild. Ich brauche eine vertikale Linie in EditText rechts neben meinem drawableLeft wie in diesem Beispiel hinzufügen:
Android EditText zeichnen Sie eine Trennlinie zwischen seinem Zeichen und seinem Text

enter image description here

Der einfachste Weg, den ich denken kann, ist diese Zeile in mein ziehbar Bild hinzuzufügen. Aber gibt es generell einen anderen Weg dies zu tun?

+1

Alle anderen Möglichkeiten, dies zu erreichen, werden komplizierter. Der beste Weg ist, diese Zeile nur in drawable einzufügen. – priyanka

Antwort

8
  1. Erstellen einer rechteckigen abgerundeten Eckenform in res/ziehbar/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. Erstellen Sie nun ein Layout

    <?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. ich die Linear Layout Hintergrund gesetzt haben mit th rechteckige abgerundete Eckenform. Es sieht genauso aus wie die Bildvorschau von urs.

+0

Das funktioniert völlig. Ich habe nie daran gedacht, es so zu machen. Danke – abeikverdi

+0

@abeikverdi: froh, dass es dir geholfen hat :) Plz akzeptiere die Antwort. – kevz

0

Versuchen Sie dieses, Ihr Problem gelöst

In Ihrem .xml-Datei,

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

Sie können einen layout und Attache an die erstellen editText als Eigenschaft

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

zum Beispiel

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

in Ihrer your_layout.xml Datei können Sie alles, was Sie wollen, setzen.

Bitte überprüfen this

+0

ah richtig. Ich kann dort ein Zeichen ziehen. Total vermisse das! Das ist cool. Es wird großartig sein, wenn Sie einen einfachen Code für your_layout.xml hinzufügen – abeikverdi

0

ziemlich einfach!

Fügen Sie einfach ein '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" /> 

<your_object> mit Ihrem ziehbar Bild ersetzen.