Ответ 1
Посмотрите на LayerDrawable
, потому что он создан из вашего XML и используется во время выполнения.
Пример:
my_drawable.xml:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/gradientDrawble">
<shape android:shape="rectangle" >
<gradient
android:endColor="#897343"
android:startColor="#345456" />
<corners android:radius="15dp" />
</shape>
</item>
Изменить во время выполнения:
LayerDrawable layerDrawable = (LayerDrawable) getResources()
.getDrawable(R.drawable.my_drawable);
GradientDrawable gradientDrawable = (GradientDrawable) layerDrawable
.findDrawableByLayerId(R.id.gradientDrawble);
gradientDrawable.setCornerRadius(50);