CircleProgressBar
项目地址:AlexMofer/CircleProgressBar
带载入动画的环形进度条,可高度配置,支持配置成表盘。
预览
要求
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) | 设置排版方式,当高宽超过绘制所需尺寸时,此属性定义其绘制位置 |
cpbRadius | dimension | setRadius(float radius) | 设置环形半径,其包括了绘制的进度的尺寸 |
cpbStartAngle | integer | setStartAngle(int angle) | 设置起始角度 |
cpbSweepAngle | integer | setSweepAngle(int angle) | 设置扫描角度 |
cpbBackgroundSize | dimension | setBackgroundSize(float size) | 设置背景尺寸 |
cpbBackgroundColor | color | setBackgroundColor(int color) | 设置背景颜色 |
cpbProgressSize | dimension | setProgressSize(float size) | 设置环形尺寸 |
cpbMax | integer | setMax(int max) | 设置最大值 |
cpbProgress | integer | setProgress(int progress) | 设置进度 |
cpbFirstGradientColors | color | setGradientColors(int... colors) | 设置渐变色 |
cpbSecondGradientColors | color | setGradientColors(int... colors) | 设置渐变色 |
cpbThirdGradientColors | color | setGradientColors(int... colors) | 设置渐变色 |
cpbFourthGradientColors | color | setGradientColors(int... colors) | 设置渐变色 |
cpbFirstGradientPositions | float | setGradientPositions(float... positions) | 设置渐变点 |
cpbSecondGradientPositions | float | setGradientPositions(float... positions) | 设置渐变点 |
cpbThirdGradientPositions | float | setGradientPositions(float... positions) | 设置渐变点 |
cpbFourthGradientPositions | float | setGradientPositions(float... positions) | 设置渐变点 |
cpbDialVisibility | visible、invisible、gone | setDialVisibility(int visibility) | 设置刻度表盘是否显示 |
cpbDialGap | dimension | setDialGap(float gap) | 设置刻度间隔 |
cpbDialAngle | integer | setDialAngle(int angle) | 设置刻度角度 |
cpbDialHeight | dimension | setDialHeight(float height) | 设置刻度高 |
cpbDialWidth | dimension | setDialWidth(float width) | 设置刻度宽 |
cpbDialColor | color | setDialColor(int color) | 设置刻度颜色 |
cpbDialSpecialUnit | integer | setDialSpecialUnit(int unit) | 设置特殊刻度之间间隔,单位以普通刻度为参考,设置为2时,第1个普通刻度、第3个普通刻度等每隔一个普通刻度都变为特殊刻度 |
cpbDialSpecialHeight | dimension | setDialSpecialHeight(float height) | 设置特殊刻度的高 |
cpbDialSpecialWidth | dimension | setDialSpecialWidth(float width) | 设置特殊刻度的宽 |
cpbDialSpecialColor | color | setDialSpecialColor(int color) | 设置特殊刻度颜色 |
cpbDialGravity | Center、Top、Bottom | setDialGravity(int gravity) | 设置长短刻度的对齐方式 |
cpbShowSpecialDialValue | boolean | setShowSpecialDialValue(boolean show) | 设置是否显示特殊刻度值 |
cpbSpecialDialValueGap | dimension | setSpecialDialValueGap(float gap) | 设置特殊刻度值间距 |
cpbSpecialDialValueTextSize | dimension | setSpecialDialValueTextSize(float textSize) | 设置特殊刻度值文字大小 |
cpbSpecialDialValueTextColor | color | setSpecialDialValueTextColor(int color) | 设置特殊刻度值文字颜色 |
cpbShowProgressValue | boolean | setShowProgressValue(boolean show) | 设置是否显示进度值 |
cpbProgressValueTextSize | dimension | setProgressValueTextSize(float textSize) | 设置进度值文字 |
cpbProgressValueTextColor | color | setProgressValueTextColor(int color) | 设置进度值文字颜色 |
cpbTopText | string | setTopText(String text) | 设置进度值顶部文字 |
cpbTopTextGap | dimension | setTopTextGap(float gap) | 设置进度值顶部文字间隔 |
cpbTopTextSize | dimension | setTopTextSize(float textSize) | 设置进度值顶部文字大小 |
cpbTopTextColor | color | setTopTextColor(int color) | 设置进度值顶部文字颜色 |
cpbBottomText | string | setBottomText(String text) | 设置进度值底部文字 |
cpbBottomTextGap | dimension | setBottomTextGap(float gap) | 设置进度值底部文字间隔 |
cpbBottomTextSize | dimension | setBottomTextSize(float textSize) | 设置进度值底部文字大小 |
cpbBottomTextColor | color | setBottomTextColor(int color) | 设置进度值底部文字颜色 |
cpbScaleType | 给定值及组合 | setScaleType(int scaleType) | 设置缩放类型 |
cpbProgressDuration | integer | setProgressDuration(long duration) | 设置进度动画时长,下次动画才有效 |
cpbProgressMode | Progress、Loading | setProgressMode(ProgressMode mode) | 设置进度模式 |
cpbLoadingStartAngle | integer | setLoadingStartAngle(int angle) | 设置载入起始角度 |
cpbLoadingSweepAngle | integer | setLoadingSweepAngle(int angle) | 设置载入扫描角度 |
cpbLoadingDuration | integer | setLoadingDuration(long duration) | 设置载入动画循环时长 |
cpbLoadingRepeatMode | Restart、Reverse | setLoadingRepeatMode(int mode) | 设置载入动画循环模式 |
cpbLoadingDrawOther | boolean | setLoadingDrawOther(boolean draw) | 载入模式下是否绘制其他元素 |
cpbLoadingText | string | setLoadingText(String text) | 设置载入时进度文字 |