我创建了一个形状背景,但setColor
函数不支持旧的API(比Android Lollipop更老,即Kitkat,ICS)。有没有其他方法可以实现这一目标。
这是我目前的代码:
val shape = GradientDrawable()
shape.shape = GradientDrawable.OVAL
shape.setStroke(strokeWidth!!,strokeColor!!)
shape.setColor(selectedColor!!)
p0.imageView.background = shape
setColor
有两种GradientDrawable
方法
首先,在API级别1中添加
public void setColor(int argb)
其次,在API级别21中添加
public void setColor(ColorStateList colorStateList)
解!!
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
shape.setColor(ContextCompat.getColor(this,R.color.colorAccent)) // your selectedColor
}else {
shape.setColor(Color.parseColor("#D81B60")) // your selectedColor
}
@Kishore感谢您的回复,但遗憾的是它没有用。所以我尝试使用shapeDrawable
和booyah!
val oval = ShapeDrawable(OvalShape())
oval.paint.color = selectedColor!!
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
p0.imageView.background = oval
}