0
好日子全部,更改顏色如果這個drawable中的圖層
我試圖改變這個drawable中的顏色動態。
的可繪製的XML是:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/status_colour_outer"
android:bottom="4dp"
android:left="4dp"
android:right="4dp"
android:top="4dp">
<shape
android:shape="oval">
<solid android:color="@color/red"/>
</shape>
</item>
<item android:id="@+id/status_colour_inner">
<shape
android:shape="oval">
<stroke
android:width="2dp"
android:color="@color/red"/>
</shape>
</item>
</layer-list>
我需要兩個層從一個web服務響應動態變化,以相同的顏色。
下面的代碼工作只,但只有改變
@ + ID/status_colour_inner
顏色,但不改變外尚未被引用層:
LayerDrawable layers = (LayerDrawable) ContextCompat.getDrawable(getContext(), R.drawable.status_colour);
GradientDrawable shape = (GradientDrawable) layers.findDrawableByLayerId(R.id.status_colour_inner);
GradientDrawable shape1 = (GradientDrawable) layers.findDrawableByLayerId(R.id.status_colour_outer);
shape.setColor(Color.parseColor(mColours.getDisplayClasses().get(position).getColour()));
shape1.setColor(Color.parseColor(mColours.getDisplayClasses().get(position).getColour()));
aView.setBackground(layers);
mColours.getDisplayClasses()。get(position).getColour()
所有這樣做是返回,如「#B5FFC9」顏色的String
它工作正常的一層,內層但是當我調用GradientDrawable shape1 =(GradientDrawable)layers.findDrawableByLayerId(R.id.status_colour_outer); 它不適用該顏色 – x10sion
檢查[this](http://stackoverflow.com/questions/26561812/android-xml-layer-list-not-displayed-correctly-on-some-devices/26859663)永遠不要留下沒有顏色邊框的形狀,因爲有些設備會將它塗成黑色! – rafsanahmad007