I am trying to make a frame from code so that I can apply it to make rounded inner corners with a solid fill outside and transparent inside. Just like a solid rectangle with transparent oval inside. picture attached. I have tried few shape combinations all that available online displays the corners outside.
The inside should be transparent not white.
The image is taken from this post but the solution presented here is not what I am looking for I dont want to use a 9 patch drawable but would like to be created in code.
Please valid answers only.
First of all, create 3 xml
layout
in drawable folder:
(You can change this name as you wish),
frame.xml:
<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:bottom="20dp" android:drawable="@drawable/red" android:top="-25dp" />
<item android:bottom="15dp" android:drawable="@drawable/frame_build" android:top="5dp" android:left="-5dp" android:right="-5dp" />
</layer-list>
frame_build.xml :
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" />
<corners android:radius="40dp" />
</shape>
red.xml
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<stroke android:width="40dp" android:height="40dp" android:color="#B22222" />
<padding android:left="8dp" android:top="-1dp" android:right="8dp" android:bottom="9dp" />
<corners android:radius="-10dp" />
</shape>
Finally refer your view or layout to Frame XML as follow :
android:background="@drawable/frame"
This tested and output as below image:
Hope this help .