封装进度条, 支持横屏模式, 支持横竖屏切换.
dependencies {
compile 'com.hqs.common.helper.qprogress:qprogress:1.0.11'
}
QProgress.Builder builder = new QProgress.Builder(this)
.setCancelable(true)
.setWheelColor(Color.BLUE)
.setDismissOnTouch(true);
progress = builder.create().show();
progress = new QProgress.Builder(MainActivity.this)
.setCancelable(true)
.setDismissOnTouch(false)
.setOnProgressListener(new QProgress.OnProgressListener() {
@Override
public void onProgressShow() {
Log.print("onProgressShow");
}
@Override
public void onProgressCancel() {
Log.print("onProgressCancel");
}
@Override
public void onProgressDestroy() {
Log.print("onProgressDestroy");
}
})
.create()
.show();
支持横竖屏切换需要做如下操作
在AndroidManifest.xml文件中添加如下代码, 以MainActivity为例, 为MainActivity 添加 configChanges属性
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION"/>
...
<activity android:name=".MainActivity" android:configChanges="orientation|screenSize">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
...
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// 添加如下代码
if (progress != null){
progress.onConfigurationChanged(newConfig);
}
// do your own things
// ...
}
这个步骤不能省, 如果忘记本步骤, 会造成点击返回按钮时整个activity都返回或调起用户自定义的其他事件, 具体操作: 在MainActivity 中添加如下:
@Override
public void onBackPressed() {
if (progress != null && progress.onBackPressed()){
// do your own things
// ...
}
else{
super.onBackPressed();
}
}
- setWheelColor 设置进度条圆圈颜色
- setWheelBackgroundColor 设置背景颜色
- setProgressBarBackgroundColor 设置圆形进度条背景颜色
- setProgressBarTintColor 设置已完成部分的颜色
- setCancelable 设置是否能够取消本次(点击返回按钮)
- setDismissOnTouch 设置点击空白的地方消失
- setOnProgressListener 设置监听进度条
覆盖资源文件中的属性的值以修改样式, res文件主要内容如下:
color.xml
<!--进度条背景颜色-->
<color name="q_progressBackgroundColor">@android:color/darker_gray</color>
<!--圆形进度条字体颜色-->
<color name="q_progressTextColor">#402e2e</color>
dimens.xml
<!--圆形进度条背景大小-->
<dimen name="q_circleProgressBgWH">110dp</dimen>
<!--圆形进度条的圆角大小 即 q_circleProgressBgWH * 0.5 -->
<dimen name="q_circleProgressBgWHHalf">55dp</dimen>
<!--进度条圆角大小-->
<dimen name="q_progressCornerRadius">10dp</dimen>
<!--圆形进度条标题字体的大小-->
<dimen name="q_progressTextSize">14sp</dimen>