First of all you need to assign id to you layer-list
item.
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- First assign id to the list item-->
<item android:id="@+id/your_shape">
<shape android:shape="rectangle">
<solid android:color="#000000" />
</shape>
</item>
<item android:left="5dp">
<shape android:shape="rectangle">
<solid android:color="@color/bg" />
</shape>
</item>
</layer-list>
Then get your shape by id.
LayerDrawable shape = (LayerDrawable) getResources().getDrawable(R.drawable.your_shape)
And you can change the color of your shape by calling
shape.setColor(Color.Black); // changing to black color
EDIT
As getDrawable()
has been deprecated. Use the following line of code.
LayerDrawable shape = (LayerDrawable) ContextCompat.getDrawable(YourActivity.this,R.drawable.your_shape)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…