Android 背景色对棒棒糖版本没有影响

Android 背景色对棒棒糖版本没有影响,android,xml,android-layout,Android,Xml,Android Layout,我已经设置了视图的背景色,如下所示,但它对其颜色没有影响。在“xml设计”视图中,它看起来不错,但在设备上却不行。我的设备上有棒棒糖的版本 CompileSDK版本和TargetSDK版本为21 <View android:layout_width="35dp" android:layout_height="35dp" android:background="@drawable/circle_appointment_statuse

我已经设置了视图的背景色,如下所示,但它对其颜色没有影响。在“xml设计”视图中,它看起来不错,但在设备上却不行。我的设备上有棒棒糖的版本

CompileSDK版本和TargetSDK版本为21

<View
   android:layout_width="35dp"
   android:layout_height="35dp"                     
   android:background="@drawable/circle_appointment_statuses"
   android:backgroundTint="@color/pending" />


坏消息

在棒棒糖5.0(API级别21)中为按钮背景着色是没有意义的

好消息

棒棒糖5.1(API级别22)似乎通过更改btn_mtrl_default_shape.xml(以及其他文件)解决了这一问题:

好消息

新的支持库(版本22.1+)支持许多组件,包括

不幸的是,android:backgroundTint属性仍然不起作用(可能我做错了什么)——因此您必须在代码中使用setSupportBackgroundtinList()设置ColorStateList。很高兴看到android:backgroundTint在未来得到支持


更多详细信息请访问此处。

要在棒棒糖(API 21)视图上着色可绘制的背景,请使用
设置颜色过滤器(int-color,PorterDuff.Mode)

以下方法不适用于棒棒糖上的背景绘图

background.setTint(int-color)


DrawableCompat.setTint(DrawableDrawable,int-color)

可能与否重复,在这种情况下,它是一个按钮,通过覆盖主题中的属性“android:colorButtonNormal”来处理。但在这种情况下,这是一种观点。是的,我已经读过了。这是一个有用但不被接受的答案。为什么这个答案被否决了?所描述的API行为是准确的。这是唯一可以为棒棒糖中的视图组着色的背景可绘制方式。完全正确!这是唯一的办法,但这个答案由于某种原因被否决了。
layout.getBackground().setColorFilter(ContextCompat.getColor(context, R.color.color), PorterDuff.Mode.SCR_ATOP)