Android可绘制图层列表项颜色访问

时间:2014-07-24 13:11:07

标签: android android-drawable

<?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);

2 个答案:

答案 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)