android – 以编程方式更改图层列表中的形状颜色

前端之家收集整理的这篇文章主要介绍了android – 以编程方式更改图层列表中的形状颜色前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何以编程方式更改图层列表中形状的颜色(#000000)?

这是我的图层列表:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle">
            <solid android:color="#000000" /> // CHANGE THIS COLOR
        </shape>
    </item>
    <item android:left="5dp">
        <shape android:shape="rectangle">
            <solid android:color="@color/bg" />
        </shape>
    </item>
</layer-list>

解决方法

首先,您需要为您分配ID到层列表项.
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- First assign id to the list item-->
    <item  android:id="@+id/your_shape">  
        <shape android:shape="rectangle">
            <solid android:color="#000000" /> 
        </shape>
    </item>
    <item android:left="5dp">
        <shape android:shape="rectangle">
            <solid android:color="@color/bg" />
        </shape>
    </item>
</layer-list>

然后通过id获得你的形状.

LayerDrawable shape = (LayerDrawable) getResources().getDrawable(R.drawable.your_shape)

你可以通过调用来改变形状的颜色

shape.setColor(Color.Black); // changing to black color

编辑

由于getDrawable()已被弃用.使用以下代码行.

LayerDrawable shape = (LayerDrawable) ContextCompat.getDrawable(YourActivity.this,R.drawable.your_shape)

猜你在找的Android相关文章