Как создать теневую границу внутри LinearLayout или редактируемого текста в Android?

#android #android-background #android-shape #android-shapedrawable

Вопрос:

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

Как добавить теневую границу на 4 сторонах редактируемого текста, как показано на рисунке? Применяется ниже кода, но он создает тень только с одной стороны.

 <?xml version="1.0" encoding="utf-8"?>
<shape android:shape="rectangle" xmlns:android="http://schemas.android.com/apk/res/android">
    <gradient
        android:startColor="#FFBDBDBD"
        android:centerColor="#65FFFFFF"
        android:endColor="#00FFFFFF"
        />
    <stroke
        android:width="1dp"
        android:color="#C3C3C3" />
    <corners
        android:radius="5dp" />
</shape>
 

Комментарии:

1. Помог ли мой ответ решить вашу проблему? Или вам нужна дополнительная помощь?

2. @DEX7RA еще не решена. Все еще в поисках решения

3. Не могли бы вы подробно объяснить, что именно вы ищете? Кажется, 4 человека дали другое решение вопроса о пропуске. Это очень помогло бы, и я уверен, что у меня будет решение для вас 🙂 Спасибо

Ответ №1:

Вы можете использовать высоту, например :-

 android:elevation="5dp"
 

высота работала как Z-индекс.

Ответ №2:

Вы можете попробовать добавить width и color внутри shape тега.

Это будет выглядеть так:

 <stroke android:width="3dp" android:color="#bfafb2"/>
 

Ответ №3:

Сначала создайте этот фон drawable с a rectangle , круглым corner и stroke серым цветом. Называемый background_drawable.xml :

 <?xml version="1.0" encoding="utf-8"?>
<shape android:shape="rectangle" xmlns:android="http://schemas.android.com/apk/res/android">

    <solid android:color="#ffffff"/>
    <corners android:radius="5dp" />
    <stroke android:width="1dp"
        android:color="#C3C3C3"/>
</shape>
 

После этого вы установите это , как android:background="" в вашем LinearLayout и EditText , у обоих виджетов есть android:elevation="2dp" для этого тень на каждом сайте, соответствующая stroke rectangle . Вот ваш макет под названием activity_main.xml :

 <LinearLayout
        android:layout_width="200dp"
        android:layout_height="100dp"
        android:elevation="2dp"
        android:id="@ id/linear_layout"
        android:background="@drawable/background_drawable"
        android:layout_centerInParent="true"
        android:orientation="horizontal" />

    <EditText
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:id="@ id/edit_text"
        android:elevation="2dp"
        android:layout_marginTop="10dp"
        android:background="@drawable/background_drawable"
        android:layout_below="@ id/linear_layout"
        android:layout_centerHorizontal="true"
        android:padding="10dp"/>
 

Конечный результат будет выглядеть следующим образом.

Ответ №4:

     <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
      <shape android:shape="rectangle">
        <solid android:color="#CABBBBBB"/>
        <corners android:radius="2dp" />
      </shape>
</item>

<item
    android:left="2dp"
    android:right="2dp"
    android:top="2dp"
    android:bottom="2dp">
    <shape android:shape="rectangle">
        <solid android:color="@android:color/white"/>
        <corners android:radius="2dp" />
    </shape>
</item>
 

Комментарии:

1. Я хочу создать эффект тени на цвете границы, как показано на рисунке. Это только создает границу.