1

I want to add inner shadow effect into my drawable file like this.

enter image description here

Below is my drawable file. I want to achieve shadow inside the drawable file as you can see above. What changes should i make to achieve this?

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <item
        android:bottom="@dimen/_3sdp"
        android:left="@dimen/_8sdp"
        android:right="@dimen/_8sdp"
        android:top="@dimen/_3sdp">

        <shape>

            <corners android:radius="@dimen/_75sdp" />

            <padding android:bottom="@dimen/_8sdp"
                android:top="@dimen/_8sdp" />

            <solid android:color="@color/leave_msg_color" />

        </shape>

    </item>

</layer-list>
Kaushik Burkule
  • 816
  • 1
  • 12
  • 27
Darshit Anjaria
  • 91
  • 2
  • 10

2 Answers2

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

    <item android:top="@dimen/size_point5dp"
            android:left="@dimen/size_point5dp"
            android:right="@dimen/size_point5dp"
            android:bottom="@dimen/size_point5dp">
        <shape android:shape="rectangle">
            <solid android:color="@color/blue_E7F1FF"/>
            <corners android:radius="8dp"/>
        </shape>

    </item>

    <!--  left shadow -->
    <item>
        <shape android:shape="rectangle">
            <gradient
                    android:angle="180"
                    android:centerColor="#00FF0000"
                    android:centerX="0.98"
                    android:endColor="#5C000000"
                    android:startColor="#00FF0000" />
            <corners android:radius="8dp" />
        </shape>
    </item>
    <!--  right shadow -->
    <item>
        <shape android:shape="rectangle">
            <gradient
                    android:angle="360"
                    android:centerColor="#00FF0000"
                    android:centerX="0.98"
                    android:endColor="#5C000000"
                    android:startColor="#00FF0000" />
            <corners android:radius="8dp" />
        </shape>
    </item>
    <!--  top shadow -->
    <item>
        <shape android:shape="rectangle">
            <gradient
                    android:angle="270"
                    android:centerColor="#00FF0000"
                    android:centerY="0.1"
                    android:endColor="#00FF0000"
                    android:startColor="#6B000000" />
            <corners android:radius="8dp" />
        </shape>
    </item>
 <!--  bottom shadow -->
    <item>
        <shape android:shape="rectangle">
            <gradient
                    android:angle="90"
                    android:centerColor="#00FF0000"
                    android:centerY="0.1"
                    android:endColor="#00FF0000"
                    android:startColor="#6B000000" />
            <corners android:radius="8dp" />
        </shape>
    </item>
</layer-list>

The image would look like image

0

You can make many item inside your layer-list to produce shadow effect inside check this one out Add shadow to custom shape on Android.

You just need to change some values to achieve your wanted output. make the radius to get oval form and the values of colors.