刘炳昭 2019-06-29
2.使用介绍
圆环百分比进度条
仿杀毒类型百分比进度条
在布局中
//也可以设置布局中的attr属性 <com.ns.yc.ycprogresslib.CircleProgressbar android:id="@+id/pb_1" android:layout_width="100dp" android:layout_height="100dp" android:text="进度条" />
使用方法
//设置类型 pb_1.setProgressType(ProgressBarUtils.ProgressType.COUNT); //设置圆形的填充颜色 pb_1.setInCircleColor(getResources().getColor(R.color.redTab)); //设置外部轮廓的颜色 pb_1.setOutLineColor(getResources().getColor(R.color.grayLine)); //设置进度监听 pb_1.setCountdownProgressListener(1, progressListener); //设置外部轮廓的颜色 pb_1.setOutLineWidth(2); //设置进度条线的宽度 pb_1.setProgressLineWidth(5); //设置进度 pb_1.setProgress(60); //设置倒计时总时间 pb_1.setTimeMillis(3000); //设置进度条颜色 pb_1.setProgressColor(getResources().getColor(R.color.colorPrimary)); //开始 pb_1.start(); //暂停 pb_1.stop(); //重新开始 pb_1.reStart();
在布局中
<com.ns.yc.ycprogresslib.NumberProgressbar android:id="@+id/bar1" android:layout_width="match_parent" android:layout_height="wrap_content" /> <com.ns.yc.ycprogresslib.NumberProgressbar android:id="@+id/bar2" android:layout_marginTop="10dp" android:layout_width="match_parent" android:layout_height="wrap_content" app:progress_max="100" app:progress_reached_bar_height="3dp" app:progress_unreached_bar_height="3dp" app:progress_reached_color="@color/colorPrimary" app:progress_unreached_color="@color/gray3" app:progress_text_size="14sp" app:progress_text_color="@color/colorAccent" app:progress_text_visibility="visible"/>
代码调用
bar1 = (NumberProgressbar) findViewById(R.id.bar1); //设置倒计时总时间 bar1.setTimeMillis(10000); //设置最大进度条的值 bar1.setMax(100); //设置进度条文本的颜色 bar1.setProgressTextColor(this.getResources().getColor(R.color.colorAccent)); //设置进度条文本的大小 bar1.setProgressTextSize(ProgressBarUtils.sp2px(this,14)); //设置百分比文字内容是否可见 bar1.setNumberTextVisibility(ProgressBarUtils.NumberTextVisibility.Visible); //设置百分比进度条的高度 bar1.setReachedBarHeight(10); //设置未更新百分比进度条的高度 bar1.setUnreachedBarHeight(10); //设置百分比进度条的颜色 bar1.setReachedBarColor(this.getResources().getColor(R.color.redTab)); //设置未更新百分比进度条的颜色 bar1.setUnreachedBarColor(this.getResources().getColor(R.color.blackText2)); //设置百分比进度条的监听 bar1.setOnProgressBarListener(new OnNumberProgressListener() { @Override public void onProgressChange(int current, int max) { } }); //开始 bar1.start(); //暂停 bar1.stop();
布局代码
<com.ns.yc.ycprogresslib.RingProgressBar android:id="@+id/bar_percent" android:layout_width="100dp" android:layout_height="100dp"/>
如何调用
bar_percent = (RingProgressBar) findViewById(R.id.bar_percent); //设置进度 bar_percent.setProgress(0); //设置更新进度条颜色 bar_percent.setDotColor(this.getResources().getColor(R.color.colorAccent)); //设置未更新部分的进度条颜色 bar_percent.setDotBgColor(this.getResources().getColor(R.color.blackText)); //设置百分比文字颜色 bar_percent.setPercentTextColor(this.getResources().getColor(R.color.blackText1)); //设置百分比文字大小 bar_percent.setPercentTextSize(ProgressBarUtils.dp2px(this,16.0f)); //设置展示的类型 bar_percent.setShowMode(ProgressBarUtils.RingShowMode.SHOW_MODE_PERCENT); //设置单位的文字内容 bar_percent.setUnitText("%"); //设置单位的文字大小 bar_percent.setUnitTextSize(ProgressBarUtils.dp2px(this,16.0f)); //设置单位的文字颜色 bar_percent.setUnitTextColor(this.getResources().getColor(R.color.blackText1));
可以设置多种类型
3.1 不论是圆环进度条还是直线进度条,在调用setProgress设置进度时,增加了验证进度的功能。因为如果设置值超过100或者小于0,该方法就起作用呢!
/**
* * @param progress 你要验证的进度值。 * @return 返回真正的进度值。 */ private int validateProgress(int progress) { if (progress > 100){ progress = 100; } else if (progress < 0){ progress = 0; } return progress; } ```
3.2 针对CircleProgressbar和NumberProgressbar自定义控件,如果调用start方法开始循环执行setProgress,程序意外销毁,则注意:
/**
*/ @Override protected void onDetachedFromWindow() { super.onDetachedFromWindow(); stop(); } ```
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.