Список слоев Android можно рисовать

Я создаю макет входа в приложение. Для фона LinearLayout(id=@+id/lgn_lyt) я попытался сделать его похожим на изображение ниже. Он выглядит нормально в редакторе дизайна, но на устройстве это выглядит странно .Рисунок, который я использовал, представляет собой векторное изображение. Это из-за векторного изображения, которое я использовал, это ошибка кодирования в списке слоев? Ожидаю ваших ответов....

логин_lyt.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <LinearLayout
        android:id="@+id/lgn_lyt"
        android:layout_gravity="center"
        android:layout_width="match_parent"
        android:layout_height="@dimen/usr_nm_lyt_hght"
        android:background="@drawable/usr_lyt_bg"
        android:layout_marginLeft="@dimen/usrnm_lyt_mrgn_left"
        android:layout_marginRight="@dimen/usrnm_lyt_mrgn_right"
        android:layout_marginTop="@dimen/usrnm_lyt_mrgn_top">
        <EditText
            android:id="@+id/usrnme"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:hint="@string/usr_hnt"
            android:background="@android:color/transparent"
            android:layout_marginLeft="@dimen/usrnm_mrgn_left"
            />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/psswrd_lyt"
        android:layout_gravity="center"
        android:layout_width="match_parent"
        android:layout_height="@dimen/usr_nm_lyt_hght"
        android:background="@drawable/psswrd_lyt_bg"
        android:layout_marginLeft="@dimen/usrnm_lyt_mrgn_left"
        android:layout_marginRight="@dimen/usrnm_lyt_mrgn_right"
        android:layout_marginTop="@dimen/usrnm_lyt_mrgn_top">
        <EditText
            android:id="@+id/psswrd"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:hint="@string/psswrd_hnt"
            android:inputType="textWebPassword"
            android:background="@android:color/transparent"
            android:layout_marginLeft="@dimen/usrnm_mrgn_left"
            />
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:gravity="center"
        android:layout_marginTop="@dimen/usrnm_lyt_mrgn_top"
        >
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/login"
            android:text="@string/login"
            android:textColor="#ffffff"
            android:background="@color/colorPrimary"
             />
    </LinearLayout>
</LinearLayout>

usr_lyt_bg.xml:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        >
        <shape
            android:layout_height="match_parent"
            android:shape="rectangle"
            android:thickness="2dp">
            <solid android:color="#10000000"></solid>
        </shape>
    </item>
    <item
        android:gravity="center_vertical|left"
        android:drawable="@drawable/user"
        android:left="15dp"
        >
    </item>
</layer-list>

В редакторе дизайна: введите здесь описание изображения

В устройстве:

введите здесь описание изображения


person jobin    schedule 09.01.2018    source источник
comment
stackoverflow .com/questions/12444320/   -  person duggu    schedule 09.01.2018
comment
Почему он выглядит иначе, чем в редакторе дизайна?   -  person jobin    schedule 09.01.2018
comment
@jobin на самом деле ты делаешь это неправильно. возможно, что-то не так с редактором дизайна, но устройство показывает правильный результат.   -  person Umair    schedule 09.01.2018
comment
В чем может быть проблема с редактором дизайна   -  person jobin    schedule 09.01.2018


Ответы (3)


для изображения вы можете использовать свойство "android:drawableLeft=""" в EditText. Нет необходимости использовать свойство фона в LinearLayout

person Dhruti Mistry    schedule 09.01.2018

Если они не предоставляют никаких функций, кроме дизайна, почему бы просто не добавить изображения с помощью Drawable-left = myImage с соответствующим дополнением?

person Notsileous    schedule 09.01.2018

измените свой макет следующим образом: вам нужно использовать android:drawableStart: в вашем тексте редактирования, а не в качестве фона. Ваше устройство показывает правильные результаты.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
    android:id="@+id/lgn_lyt"
    android:layout_gravity="center"
    android:layout_width="match_parent"
    android:layout_height="@dimen/usr_nm_lyt_hght"
    android:layout_marginLeft="@dimen/usrnm_lyt_mrgn_left"
    android:layout_marginRight="@dimen/usrnm_lyt_mrgn_right"
    android:layout_marginTop="@dimen/usrnm_lyt_mrgn_top">
    <EditText
        android:id="@+id/usrnme"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:hint="@string/usr_hnt"
        android:drawableStart="@drawable/usr_lyt_bg"
        android:drawableLeft="@drawable/usr_lyt_bg"
        android:background="@android:color/transparent"
        android:layout_marginLeft="@dimen/usrnm_mrgn_left"
        />
       </LinearLayout>

     <LinearLayout
    android:id="@+id/psswrd_lyt"
    android:layout_gravity="center"
    android:layout_width="match_parent"
    android:layout_height="@dimen/usr_nm_lyt_hght"
    android:layout_marginLeft="@dimen/usrnm_lyt_mrgn_left"
    android:layout_marginRight="@dimen/usrnm_lyt_mrgn_right"
    android:layout_marginTop="@dimen/usrnm_lyt_mrgn_top">
    <EditText
        android:id="@+id/psswrd"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:hint="@string/psswrd_hnt"
        android:drawableStart="@drawable/psswrd_lyt_bg"
        android:drawableLeft="@drawable/psswrd_lyt_bg"
        android:inputType="textWebPassword"
        android:background="@android:color/transparent"
        android:layout_marginLeft="@dimen/usrnm_mrgn_left"
        />
    </LinearLayout>
    <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:gravity="center"
    android:layout_marginTop="@dimen/usrnm_lyt_mrgn_top"
    >
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/login"
        android:text="@string/login"
        android:textColor="#ffffff"
        android:background="@color/colorPrimary"
        />
</LinearLayout>
</LinearLayout>
person Umair    schedule 09.01.2018