CircularProgressDrawable

3,722 阅读1分钟

自带动画效果的圆形进度图, 在SwipeRefreshLayout中被应用

只支持api11以上的MaterialDesign样式的圆形动画不确定进度的进度指示器

我平时项目开发必备框架

  1. Android上最强网络请求 Net
  2. Android上最强列表(包含StateLayout) BRV
  3. Android最强缺省页 StateLayout
  4. JSON和长文本日志打印工具 LogCat
  5. 支持异步和全局自定义的吐司工具 Tooltip
  6. 开发调试窗口工具 DebugKit
  7. 一行代码创建透明状态栏 StatusBar

设置到ImageView上, 然后通过start()stop()方法控制其开始和结束

val drawable = CircularProgressDrawable(context).apply {
                strokeWidth = 10f
                strokeCap = Paint.Cap.ROUND
                centerRadius = 50f
                arrowEnabled = true
                start()
            }
findViewById<ImageView>(R.id.iv_progress).setImageDrawable(drawable)

设置圆角

mDrawable.setStrokeCap(Paint.Cap.ROUND);

设置箭头

public void	setArrowEnabled(boolean show)
// 必须先启用箭头

public void	setArrowDimensions(float width, float height)
// 设置箭头的尺寸

public void	setArrowScale(float scale)
// 在箭头的尺寸上缩放倍数, 如果没有设置尺寸则无效

设置开始和结束的位置

public void	setStartEndTrim(float start, float end)
// 开始和结束的角度
public boolean isRunning()
// 是否在运行中

public void setAlpha(int alpha)
// 设置透明度

public void setBackgroundColor(int color)
// 背景颜色

public void setCenterRadius(float centerRadius)
// 设置环形的半径(控制环形的尺寸)

public void setColorFilter(ColorFilter colorFilter)

public void setColorSchemeColors(int... colors)
// 循环颜色

public void setProgressRotation(float rotation)
// 旋转次数

public void setStrokeCap(Paint.Cap strokeCap)
// 设置环形的节点显示(Paint.Cap.ROUND即圆角)

public void setStrokeWidth(float strokeWidth)
// 环形的宽度

public void setStyle(int size)
// 设置尺寸(LARGE和DEFAULT)

public void start() // 开始
public void stop() // 结束