androidgradientdrawable

How to set TopLeftRadius and BottomLeftRadius for a GradientDrawable programmatically in Android


I have a ShapeDrawable . I want to set the CornerRadius (TopLeftRadius & BottomLeftRadius) programmatically.

Below is my xml

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

<item android:top="5dp"
    android:bottom="5dp">

    <shape android:shape="rectangle">
        <corners android:topLeftRadius="20dp"
            android:bottomLeftRadius="20dp"/>

        <solid android:color="#A2D368"/>
    </shape>
</item>
</layer-list>

Solution

  • Do like this;

        float mRadius=3f;
    
        GradientDrawable drawable=new GradientDrawable();
        drawable.setShape(GradientDrawable.RECTANGLE);
        drawable.setCornerRadii(new float[]{mRadius, mRadius, 0, 0, 0, 0, mRadius, mRadius});
    

    for more details click here