android 绘制圆弧简书,Android-自定义ProgressBar实现圆弧进度条

继承于ProgressBar实现,保留了Progressbar的特性,源码在文尾。。

c9f4dcc2e0f3?tn=96100419_hao_pg

demo.gif

参数

name

format

description

borderWidth

integer

圆弧边框的宽度

progressStyle

tick/arc

进度条类型,tick为带刻度的

radius

integer

半径

arcbgColor

color

圆弧的边框背景

degree

integer

弧度,设置为0即为圆形进度条,180为半圆

tickWidth

integer

刻度的宽度

tickDensity

integer

刻度的密度 2~8 越小越密

bgShow

boolean

是否显示圆弧边框背景

arcCapRound

boolean

圆弧的笔触是否为圆形,tick无效

interface

提供了绘制圆弧中间区域的一个接口 ,可根据自己的需求自由绘制

/**

*

* @param canvas

* @param rectF 圆弧的Rect

* @param x 圆弧的中心x

* @param y 圆弧的中心y

* @param storkeWidth 圆弧的边框宽度

* @param progress 当前进度

*/

public interface OnCenterDraw {

public void draw(Canvas canvas, RectF rectF, float x, float y,float storkeWidth,int progress);

}

默认提供了两个实现

onImageCenter and OnTextCenter

Use

android:id="@+id/myProgress"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

app:degree="0"

app:progressStyle="arc" />

android:id="@+id/myProgress01"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_below="@id/myProgress"

app:radius="80dp"

app:progressColor="@color/progressColor"

app:tickDensity="3" />

android:id="@+id/myProgress02"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_toRightOf="@id/myProgress"

app:radius="90dp"

app:arcCapRound="true"

app:degree="180"

app:progressStyle="arc"

app:progressColor="@color/progressColorBlue"

app:tickDensity="3" />

mProgress.setOnCenterDraw(new ArcProgress.OnCenterDraw() {

@Override

public void draw(Canvas canvas, RectF rectF, float x, float y, float storkeWidth,int progress) {

Paint textPaint = new Paint(Paint.ANTI_ALIAS_FLAG);

textPaint.setStrokeWidth(35);

textPaint.setColor(getResources().getColor(R.color.textColor));

String progressStr = String.valueOf(progress+"%");

float textX = x-(textPaint.measureText(progressStr)/2);

float textY = y-((textPaint.descent()+textPaint.ascent())/2);

canvas.drawText(progressStr,textX,textY,textPaint);

}

});

依赖

dependencies {

compile 'com.czp.arcProgressBar:ArcProgressBar:1.0.1'

}

写完搜了一下。。。貌似重复造了个轮子。。。

后续补上几个知识点~哇哈啊哈啊

源码下载地址

喜欢的不妨来个Star呀~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值