【问题标题】:Android Drawable Layer List item Color accessAndroid Drawable Layer List item 颜色访问
【发布时间】:2014-07-24 13:11:06
【问题描述】:
<?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>

我在 Seekbar 上申请的这个 Drawable。 我必须在代码中访问此 Drawable 并更改其“背景”/“进度”颜色。

但我真的不知道如何在代码中访问它。

请帮我做这件事。

编辑

LayerDrawable ld = (LayerDrawable) getResources().getDrawable(R.drawable.my_drawable);
ClipDrawable cd = (ClipDrawable) ld.getDrawable(1);
cd.setColorFilter(0xFFFF0000, PorterDuff.Mode.MULTIPLY);

【问题讨论】:

标签: android android-drawable


【解决方案1】:

试试这个:

对于片段:getActivity().getResources().getDrawable(R.drawable.&lt;your_drawable&gt;);

活动:getResources().getDrawable(R.drawable.&lt;your_drawable&gt;);

希望这会有所帮助。

【讨论】:

  • 这是为了访问 Drawable 实例,但如何更改“进度”颜色?
【解决方案2】:

我不相信您可以从代码中更改可绘制对象的实际背景颜色,但您可以应用 colorFilter:

Drawable drawable = getResources().getDrawable(R.drawable.your_drawable);
                drawable.setColorFilter(cf)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-29
    • 2015-01-11
    • 2020-04-24
    • 2012-03-27
    • 2013-01-04
    • 2016-02-08
    • 1970-01-01
    相关资源
    最近更新 更多