18
我試圖以編程方式更改selectable_kachel_shape的顏色。下面是XML文件:以編程方式更改層列表中形狀的顏色
kachel_ticked_style.xml
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<shape
android:id="@+id/selectable_kachel_shape"
android:shape="rectangle" >
<stroke
android:width="5dp"
android:color="@color/headrbar_color" />
</shape>
</item>
<item>
<rotate
android:fromDegrees="45"
android:pivotX="120%"
android:pivotY="100%"
android:toDegrees="45" >
<shape android:shape="line" >
<stroke
android:width="40dp"
android:color="@color/headrbar_color" />
</shape>
</rotate>
</item>
<item
android:right="5dp"
android:top="5dp">
<bitmap
android:gravity="top|right"
android:src="@drawable/selectable_tiles_check" />
</item>
</layer-list>
我一個片段中調用以下代碼
LayerDrawable layers = (LayerDrawable) this.getActivity().getResources().getDrawable(R.drawable.kachel_ticked_style);
GradientDrawable shape = (GradientDrawable) (layers.findDrawableByLayerId(R.id.selectable_kachel_shape));
shape.setColor(this.getActivity().getResources().getColor(android.R.color.background_dark);
1.爲什麼我在形狀歌廳一個NullPointerException。 setColor?
2.如何以編程方式更改形狀內部的顏色,即圖層列表中的顏色?
的顏色,但我有相同problem.This不工作對我來說 –
嘛@ji ncyabraham你可以得到視圖然後它的背景可繪製然後得到形狀作爲gradiendrawable在這裏[鏈接](http://stackoverflow.com/questions/16636412/change-shape-solid-color-at-runtime-inside- drawable-xml-used-as-background) – M090009
你可以請你說明你做了什麼步驟來獲取形狀對象,目前還不清楚。 –