<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@android:id/background"> <shape> <solid android:color="#FF0000" /> </shape> </item> <item android:id="@android:id/progress"> <clip> <shape> <solid android:color="#00FF00" /> </shape> </clip> </item> </layer-list>
这个Drawable我在Seekbar上申请。 我必须在代码中访问此Drawable并更改其背景&#34; /&#34;进度&#34;颜色。
但我真的不知道如何在代码中访问它。
请帮我这样做。
修改
LayerDrawable ld = (LayerDrawable) getResources().getDrawable(R.drawable.my_drawable);
ClipDrawable cd = (ClipDrawable) ld.getDrawable(1);
cd.setColorFilter(0xFFFF0000, PorterDuff.Mode.MULTIPLY);
答案 0 :(得分:1)
试试这个:
对于片段:getActivity().getResources().getDrawable(R.drawable.<your_drawable>);
对于活动:getResources().getDrawable(R.drawable.<your_drawable>);
希望这有帮助。
答案 1 :(得分:0)
我不相信你可以改变代码中drawable的实际背景颜色,但你可以应用colorFilter:
Drawable drawable = getResources().getDrawable(R.drawable.your_drawable);
drawable.setColorFilter(cf)