Android 如果此图纸中的图层可绘制,请更改颜色
我正在尝试动态地改变这张画的颜色 可绘制的xml是:Android 如果此图纸中的图层可绘制,请更改颜色,android,android-drawable,Android,Android Drawable,我正在尝试动态地改变这张画的颜色 可绘制的xml是: <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/status_colour_outer" android:bottom="4dp" android:left="4dp" android:right="4dp" android:top="4dp
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/status_colour_outer"
android:bottom="4dp"
android:left="4dp"
android:right="4dp"
android:top="4dp">
<shape
android:shape="oval">
<solid android:color="@color/red"/>
</shape>
</item>
<item android:id="@+id/status_colour_inner">
<shape
android:shape="oval">
<stroke
android:width="2dp"
android:color="@color/red"/>
</shape>
</item>
</layer-list>
mColours.getDisplayClasses().get(position.getColor())
所有这些操作只返回一个颜色字符串,如“#B5FFC9”尝试使用活动
上下文来获取可绘制的:
LayerDrawable layers = (LayerDrawable) ContextCompat.getDrawable(YourActivity.this,R.drawable.your_shape)
它适用于单层,内层,但当我调用GradientDrawable shape1=(GradientDrawable)layers.findDrawableByLayerId(R.id.status\u color\u outer)时,它可以正常工作;在外层,它不适用于颜色检查,因为某些设备会将其涂成黑色,所以永远不要将带有边框的形状保留为无颜色!
LayerDrawable layers = (LayerDrawable) ContextCompat.getDrawable(YourActivity.this,R.drawable.your_shape)