现在很多app的首页都有一个倒计时控件,比如说3秒或者5秒自动跳转界面,或者点击控件直接跳过
首先,自定义控件CircleProgressbar(参考网上资料)
package com.zhoujian.mykeep.view;
import android.annotation.TargetApi;
import android.content.Context;
import android.content.res.ColorStateList;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.RectF;
import android.os.Build;
import android.support.annotation.ColorInt;
import android.util.AttributeSet;
import android.widget.TextView;
import com.zhoujian.mykeep.R;
public class CircleProgressbar extends TextView
{
//外部轮廓的颜色
private int outLineColor = Color.BLACK;
//外部轮廓的宽度
private int outLineWidth = 2;
//内部圆的颜色
private ColorStateList inCircleColors = ColorStateList.valueOf(Color.TRANSPARENT);
//中心圆的颜色
private int circleColor;
//进度条的颜色
private int progressLineColor = Color.BLUE;
//进度条的宽度
private int progressLineWidth = 8;
//画笔
private Paint mPaint = new Paint();
//进度条的矩形区域
private RectF mArcRect = new RectF();
//进度
private int progress = 100;
//进度条类型
private ProgressType mProgressType = ProgressType.COUNT_BACK;
//进度倒计时时间
private long timeMillis = 3000;
//View的显示区域。
final Rect bounds = new Rect();
//进度条通知。
private OnCountdownProgressListener mCountdownProgressListener;
private int listenerWhat = 0;
public CircleProgressbar(Context context) {
this(context, null);
}
public CircleProgressbar(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public CircleProgressbar(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
initialize(context, attrs);
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public CircleProgressbar(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
initialize(context, attrs);
}
private void initialize(Context context, AttributeSet attributeSet) {