登录 立即注册
安币:

安卓巴士 - 安卓开发 - Android开发 - 安卓 - 移动互联网门户

可配置的圆弧进度条

[复制链接]
来自: 蜗牛已爆炸 分类: Android精品源码 上传时间: 2017-1-11 17:15:34
Tag:

项目介绍:

Attributes

nameformatdescription
borderWidthinteger圆弧边框的宽度
progressStyletick/arc进度条类型,tick为带刻度的
radiusinteger半径
arcbgColorcolor圆弧的边框背景
degreeinteger弧度,设置为0即为圆形进度条,180为半圆
tickWidthinteger刻度的宽度
tickDensityinteger刻度的密度 2~8 越小越密
bgShowboolean是否显示圆弧边框背景
arcCapRoundboolean圆弧的笔触是否为圆形,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

OnTextCenter

Use

    <com.czp.library.ArcProgress
        android:id="@+id/myProgress"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:degree="0"
        app:progressStyle="arc" />

    <com.czp.library.ArcProgress
        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" />
    <com.czp.library.ArcProgress
        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);
            }
        });

Including in your project

dependencies {
  compile 'com.czp.arcProgressBar:ArcProgressBar:1.0.1'
}

相关源码推荐:

我来说两句
*滑动验证:
所有评论(18)
Frank_z 2017-1-11 17:15:51
帮帮顶顶!!
回复
蜗牛已爆炸 2017-1-11 17:19:25
源码下载:https://github.com/ZeeeeeeNo/ArcProgressBar
回复
chaoyue 2017-1-11 17:47:24
mark,收藏了
回复
belle 2017-1-11 17:51:51
mark,收藏了
回复
suzhouliuyan 2017-1-11 17:57:48
好好 学习了 确实不错
回复
深思 2017-1-11 18:04:49
感谢分享,楼主V5~
回复
冷丷温柔° 2017-1-12 08:41:19
淡定,淡定,淡定……
回复
123下一页
1388 1 0
代码贡献英雄榜
用户名 下载数
联系我们
首页/微信公众账号投稿

帖子代码编辑/版权问题

QQ:435399051,769657487

如何获得代码达人称号

如何成为签约作者

联系我们
关闭
合作电话:
13802416937
Email:
[email protected]
商务市场合作/投稿
问题反馈及帮助
联系我们

广告投放| 申请友链|手机版|站点统计|安卓巴士 ( 粤ICP备15117877号 )

快速回复 返回顶部 返回列表