如果按钮的背景设置为shape drawable
,我们可以通过调用以编程方式进行
(GradientDrawable) findDrawableByd(R.drawable.some_shape).setColor(someColor);
。
如果设置为layer-list drawable
,我们可以通过调用
LayerDrawable someLayerList = (LayerDrawable) getResources().getDrawable(R.drawable.someLayerList);
((GradientDrawable) someLayerList.findDrawableByLayerId(R.id.someShape)).setColor(someColor);
我想更深入一级。如何以编程方式设置位于选择器中的图层列表中的可绘制形状的颜色?
使用排序上方的代码段有效。它实际上看起来非常错。我有多个dialogfragments设置,按顺序改变按钮的颜色。虽然第一个dialogFragment总是正确着色,但其余部分通常都没有。我想强调一点,当按钮的背景设置为图层列表时,一切都完美,如果设置为选择器,它会变得有点儿。