CircleProgressBar 带载入动画的环形进度条

CircleProgressBar

ICON

项目地址:AlexMofer/CircleProgressBar

带载入动画的环形进度条,可高度配置,支持配置成表盘。

预览

Screenshots Screenshots

要求

minSdkVersion 11

引用

dependencies {
    ⋯
    compile 'am.widget:circleprogressbar:1.0.2'
    ⋯
}

使用

  • 布局样例
<am.widget.circleprogressbar.CircleProgressBar
    android:layout_width="match_parent"
    android:layout_height="480dp"
    app:cpbGravity="center"
    app:cpbRadius="160dp"
    app:cpbStartAngle="135"
    app:cpbSweepAngle="270"
    app:cpbBackgroundSize="2dp"
    app:cpbBackgroundColor="@color/colorPrimary"
    app:cpbProgressSize="20dp"
    app:cpbMax="810"
    app:cpbProgress="315"
    app:cpbFirstGradientColors="#ff33b5e5"
    app:cpbSecondGradientColors="#ff99cc00"
    app:cpbThirdGradientColors="#ffffbb33"
    app:cpbFourthGradientColors="#ffff4444"
    app:cpbDialGap="4dp"
    app:cpbDialAngle="5"
    app:cpbDialHeight="10dp"
    app:cpbDialWidth="2dp"
    app:cpbDialColor="@color/colorPrimary"
    app:cpbDialSpecialUnit="3"
    app:cpbDialSpecialHeight="15dp"
    app:cpbDialSpecialColor="@color/colorAccent"
    app:cpbShowSpecialDialValue="true"
    app:cpbSpecialDialValueGap="2dp"
    app:cpbSpecialDialValueTextSize="12sp"
    app:cpbSpecialDialValueTextColor="#ff99cc00"
    app:cpbShowProgressValue="true"
    app:cpbProgressValueTextSize="72sp"
    app:cpbProgressValueTextColor="#ff33b5e5"
    app:cpbTopText="速度"
    app:cpbTopTextSize="20sp"
    app:cpbTopTextGap="10dp"
    app:cpbTopTextColor="@color/colorPrimary"
    app:cpbBottomText="km/s"
    app:cpbBottomTextSize="16sp"
    app:cpbBottomTextGap="15dp"
    app:cpbBottomTextColor="#ffffbb33"
    app:cpbScaleType="None"
    app:cpbProgressDuration="2000"
    app:cpbProgressMode="Loading"
    app:cpbLoadingDuration="3000"
    app:cpbLoadingRepeatMode="Reverse"
    app:cpbLoadingDrawOther="true"
    app:cpbLoadingText="载入"/>
  • 代码样例
CircleProgressBar cpbDemo = (CircleProgressBar) findViewById(R.id.circleprogressbar_cpb_demo);
cpbDemo.setStartAngle(-90);
cpbDemo.setSweepAngle(360);
cpbDemo.setGradientColors(0xffff4444);
cpbDemo.setBackgroundSize(0);
cpbDemo.setProgress(520);
cpbDemo.setProgressSize(64);
cpbDemo.setDialVisibility(View.GONE);
cpbDemo.setProgressMode(CircleProgressBar.ProgressMode.PROGRESS);
cpbDemo.setShowProgressValue(true);
cpbDemo.setTopText("步数");
cpbDemo.setBottomText(null);

属性说明

xml布局属性属性值对应方法说明
cpbGravity给定值及组合setGravity(int gravity)设置排版方式,当高宽超过绘制所需尺寸时,此属性定义其绘制位置
cpbRadiusdimensionsetRadius(float radius)设置环形半径,其包括了绘制的进度的尺寸
cpbStartAngleintegersetStartAngle(int angle)设置起始角度
cpbSweepAngleintegersetSweepAngle(int angle)设置扫描角度
cpbBackgroundSizedimensionsetBackgroundSize(float size)设置背景尺寸
cpbBackgroundColorcolorsetBackgroundColor(int color)设置背景颜色
cpbProgressSizedimensionsetProgressSize(float size)设置环形尺寸
cpbMaxintegersetMax(int max)设置最大值
cpbProgressintegersetProgress(int progress)设置进度
cpbFirstGradientColorscolorsetGradientColors(int... colors)设置渐变色
cpbSecondGradientColorscolorsetGradientColors(int... colors)设置渐变色
cpbThirdGradientColorscolorsetGradientColors(int... colors)设置渐变色
cpbFourthGradientColorscolorsetGradientColors(int... colors)设置渐变色
cpbFirstGradientPositionsfloatsetGradientPositions(float... positions)设置渐变点
cpbSecondGradientPositionsfloatsetGradientPositions(float... positions)设置渐变点
cpbThirdGradientPositionsfloatsetGradientPositions(float... positions)设置渐变点
cpbFourthGradientPositionsfloatsetGradientPositions(float... positions)设置渐变点
cpbDialVisibilityvisible、invisible、gonesetDialVisibility(int visibility)设置刻度表盘是否显示
cpbDialGapdimensionsetDialGap(float gap)设置刻度间隔
cpbDialAngleintegersetDialAngle(int angle)设置刻度角度
cpbDialHeightdimensionsetDialHeight(float height)设置刻度高
cpbDialWidthdimensionsetDialWidth(float width)设置刻度宽
cpbDialColorcolorsetDialColor(int color)设置刻度颜色
cpbDialSpecialUnitintegersetDialSpecialUnit(int unit)设置特殊刻度之间间隔,单位以普通刻度为参考,设置为2时,第1个普通刻度、第3个普通刻度等每隔一个普通刻度都变为特殊刻度
cpbDialSpecialHeightdimensionsetDialSpecialHeight(float height)设置特殊刻度的高
cpbDialSpecialWidthdimensionsetDialSpecialWidth(float width)设置特殊刻度的宽
cpbDialSpecialColorcolorsetDialSpecialColor(int color)设置特殊刻度颜色
cpbDialGravityCenter、Top、BottomsetDialGravity(int gravity)设置长短刻度的对齐方式
cpbShowSpecialDialValuebooleansetShowSpecialDialValue(boolean show)设置是否显示特殊刻度值
cpbSpecialDialValueGapdimensionsetSpecialDialValueGap(float gap)设置特殊刻度值间距
cpbSpecialDialValueTextSizedimensionsetSpecialDialValueTextSize(float textSize)设置特殊刻度值文字大小
cpbSpecialDialValueTextColorcolorsetSpecialDialValueTextColor(int color)设置特殊刻度值文字颜色
cpbShowProgressValuebooleansetShowProgressValue(boolean show)设置是否显示进度值
cpbProgressValueTextSizedimensionsetProgressValueTextSize(float textSize)设置进度值文字
cpbProgressValueTextColorcolorsetProgressValueTextColor(int color)设置进度值文字颜色
cpbTopTextstringsetTopText(String text)设置进度值顶部文字
cpbTopTextGapdimensionsetTopTextGap(float gap)设置进度值顶部文字间隔
cpbTopTextSizedimensionsetTopTextSize(float textSize)设置进度值顶部文字大小
cpbTopTextColorcolorsetTopTextColor(int color)设置进度值顶部文字颜色
cpbBottomTextstringsetBottomText(String text)设置进度值底部文字
cpbBottomTextGapdimensionsetBottomTextGap(float gap)设置进度值底部文字间隔
cpbBottomTextSizedimensionsetBottomTextSize(float textSize)设置进度值底部文字大小
cpbBottomTextColorcolorsetBottomTextColor(int color)设置进度值底部文字颜色
cpbScaleType给定值及组合setScaleType(int scaleType)设置缩放类型
cpbProgressDurationintegersetProgressDuration(long duration)设置进度动画时长,下次动画才有效
cpbProgressModeProgress、LoadingsetProgressMode(ProgressMode mode)设置进度模式
cpbLoadingStartAngleintegersetLoadingStartAngle(int angle)设置载入起始角度
cpbLoadingSweepAngleintegersetLoadingSweepAngle(int angle)设置载入扫描角度
cpbLoadingDurationintegersetLoadingDuration(long duration)设置载入动画循环时长
cpbLoadingRepeatModeRestart、ReversesetLoadingRepeatMode(int mode)设置载入动画循环模式
cpbLoadingDrawOtherbooleansetLoadingDrawOther(boolean draw)载入模式下是否绘制其他元素
cpbLoadingTextstringsetLoadingText(String text)设置载入时进度文字
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值