Android 背景色对棒棒糖版本没有影响
我已经设置了视图的背景色,如下所示,但它对其颜色没有影响。在“xml设计”视图中,它看起来不错,但在设备上却不行。我的设备上有棒棒糖的版本 CompileSDK版本和TargetSDK版本为21Android 背景色对棒棒糖版本没有影响,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
<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)