效果如下:

Java代码设置如下:

int roundRadius = 15; // 8dp 圆角半径 The x-radius of the oval used to round the corners//准备progressBar带圆角的背景DrawableGradientDrawable progressBg = new GradientDrawable();//设置圆角弧度progressBg.setCornerRadius(roundRadius); //设置绘制颜色progressBg.setColor(getResources().getColor(R.color.color_efefef));//准备progressBar带圆角的进度条DrawableGradientDrawable progressContent = new GradientDrawable();progressContent.setCornerRadius(roundRadius);//设置绘制颜色,此处可以自己获取不同的颜色progressContent.setColor(getColorForIndex(position));//ClipDrawable是对一个Drawable进行剪切操作,可以控制这个drawable的剪切区域,以及相相对于容器的对齐方式ClipDrawable progressClip = new ClipDrawable(progressContent, Gravity.LEFT, ClipDrawable.HORIZONTAL);//Setup LayerDrawable and assign to progressBar//待设置的Drawable数组Drawable[] progressDrawables = {progressBg, progressClip};LayerDrawable progressLayerDrawable = new LayerDrawable(progressDrawables);//根据ID设置progressBar对应内容的DrawableprogressLayerDrawable.setId(0, android.R.id.background);progressLayerDrawable.setId(1, android.R.id.progress);//设置progressBarDrawableprogressBar.setProgressDrawable(progressLayerDrawable);//设置进度值progressBar.setProgress(item.getValue());

参考博客:

https://www.jianshu.com/p/c146419fc1b2

https://blog.csdn.net/buptlzx/article/details/8294979

https://blog.51cto.com/glblong/1739160

更多相关文章

  1. Android(安卓)中 shape 图形的使用
  2. Android实现按钮点击效果(第一次点击变色,第二次恢复)
  3. Android编程实现自定义ProgressBar样式示例(背景色及一级、二级
  4. Android报表控件achartengine介绍(一)
  5. Android(安卓)颜色渲染(二) 颜色区域划分原理与实现思路
  6. android 下滤镜效果的实现
  7. Android(安卓)中gradient的用法
  8. Android(安卓)Material Design 系列之 TextInputLayout 使用详解
  9. [自定义控件]android自定义view实战之太极图

随机推荐

  1. Android夜间模式实现(系统自带)
  2. android 禁止viewpager预加载
  3. 监控android binder size
  4. A20修改顶部状态栏 禁止跳转设置界面
  5. LGame(Android及J2SE游戏引擎)入门示例—
  6. 2019-11-07 Android谷歌支付SDK集成问题
  7. StagefrightPlayer&&AwesomePlayer 初步
  8. cvc-complex-type.2.4.d: 发现了以元素 '
  9. Laravel 创建可以传递参数 Console服务的
  10. laravel 根据不同组织加载不同视图的实现