Crear un progreso dibujable programáticamente

Tengo un escenario en el que necesito tener una gran cantidad de dibujables de la barra de progreso. No puedo crear recursos XML para todos ellos porque quiero que el usuario elija un color que luego se utilizará para crear dinámicamente el dibujo. A continuación se muestra uno de esos dibujables en xml, ¿cómo puedo crear este dibujable exacto mediante programación?

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background">
    <shape>
        <solid android:color="@color/transparent" />
        <stroke android:width="2px" android:color="@color/category_blue_stroke"/>
    </shape>
</item>


<item android:id="@android:id/progress">
<clip>
    <shape>
        <solid android:color="@color/category_blue" />
        <stroke android:width="2px" android:color="@color/category_blue_stroke"/>
    </shape>
</clip>
</item>

</layer-list>