У меня есть EditText с изображением drawableLeft. Мне нужно добавить вертикальную линию в EditText рядом с моим drawableLeft, как в этом примере:

enter image description here

Самый простой способ, который я могу придумать, - это добавить эту линию в мое изображение, которое можно рисовать. Но вообще есть ли другой способ сделать это?

11
abeikverdi 31 Дек 2015 в 08:21

4 ответа

Лучший ответ
  1. Создайте прямоугольную форму с закругленным углом в файле 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. Теперь создайте макет

    <?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. Я установил фон линейного макета с прямоугольной формой скругленного угла. Выглядит именно так, как превью изображения urs.

13
kevz 31 Дек 2015 в 05:41

Довольно простой!

Просто добавьте "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> своим рисунком.

0
TejjD 31 Дек 2015 в 05:44

Попробуйте, ваша проблема решена

В вашем .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>
0
Amit Vaghela 31 Дек 2015 в 05:46

Вы можете создать layout и прикрепить к editText как свойство

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

Например

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

В файл your_layout.xml вы можете поместить все, что захотите.

Проверьте это

3
Zumry Mohamed 31 Дек 2015 в 05:26