public class CountDownView extends View{ private static int defaultCircleSolideColor = Color.BLUE; private static int defaultCircleStrokeColor = Color.WHITE;//最底层的颜色 private static int defaultCircleStrokeWidth = 10; private static int defaultCircleRadius = 60; private static int progressColor = Color.YELLOW;//进度条的颜色 private static int progressWidth = 11;//>defaultCircleStrokeWidth private static int smallCircleSolideColor = Color.BLACK; private static int smallCircleStrokeColor = Color.WHITE; private static float smallCircleStrokeWidth = 8; private static float smallCircleRadius = 30; private static int textColor = Color.WHITE;//BLACK private static float textSize = 30; private static Paint defaultCriclePaint; private static Paint progressPaint; private static Paint textPaint; private static float currentAngle; public static String textDesc; public static long countdownTime; private static int mStartSweepValue = -90; //设置画布圆形背景 private Paint backgroundPaint; public static ValueAnimator animator; public CountDownView(Context context) { super(context); } public CountDownView(Context context, AttributeSet attrs) { super(context, attrs); initStyle(attrs); setPaint(); } public CountDownView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); //获取自定义属性 initStyle(attrs); setPaint(); } private void initStyle(AttributeSet attrs){ TypedArray typedArray = getContext().obtainStyledAttributes(attrs, R.styleable.CountDownProgress); int indexCount = typedArray.getIndexCount(); for(int i=0;i<indexCount;i++){ int attr = typedArray.getIndex(i); switch (attr){ case R.styleable.CountDownProgress_default_circle_solide_color: defaultCircleSolideColor = typedArray.getColor(attr, defaultCircleSolideColor); break; case R.styleable.CountDownProgress_default_circle_stroke_color: defaultCircleStrokeColor = typedArray.getColor(attr, defaultCircleStrokeColor); break; case R.styleable.CountDownProgress_default_circle_stroke_width: defaultCircleStrokeWidth = (int) typedArray.getDimension(attr, defaultCircleStrokeWidth); break; case R.styleable.CountDownProgress_default_circle_radius: defaultCircleRadius = (
自定义圆环倒计时
最新推荐文章于 2024-07-16 15:25:44 发布
本文介绍了一个自定义的圆环倒计时组件`CountDownView`的实现,包括颜色、尺寸等属性的自定义,以及利用属性动画和`CountDownTimer`进行倒计时效果的展示。此外,还展示了如何将圆球从屏幕一角移动到另一角的动画效果。
摘要由CSDN通过智能技术生成