CircleProgressDrawable setColorSchemeColors方法失效问题求助
问题原因及解决方法
核心问题
你调用setColorSchemeColors()时传的是颜色资源ID(比如R.color.standard_blur),但这个方法需要的是直接的颜色值(ColorInt),系统没法把资源ID解析成正确的颜色,所以进度条只能显示默认的深色。
解决步骤
- 用
ContextCompat.getColor()把颜色资源ID转成ColorInt,这个方法还能兼容低版本Android系统。 - 修改后的代码示例:
val progressDrawable = CircularProgressDrawable(context).apply { strokeWidth = 15f // 转成ColorInt传入 setColorSchemeColors( ContextCompat.getColor(context, R.color.standard_blur), ContextCompat.getColor(context, R.color.standard), ContextCompat.getColor(context, R.color.standard_light), ContextCompat.getColor(context, R.color.standard75) ) start() }
补充:Glide设置占位符的完整示例
如果还没正确给Glide设置占位符,参考下面的代码:
Glide.with(context) .load(imageUrl) .placeholder(progressDrawable) .into(imageView)
内容的提问来源于stack exchange,提问作者Danwolve
相关产品推荐
相关产品推荐

