欢迎加入技术谈论群:714476794
先来看看要实现的效果
实现思路非常简单:当前变化的圆点先从最小半径变大到最大最大半径再变回最小半径的圆,然后再切换到下个圆点,同时颜色会先变浅在变会原来的颜色(可以理解为透明度变化),而且当前圆点的上上一个圆点颜色会不断变浅。大概就这样(可能我实现的效果和图片的有些出入)
先看下实现效果:
直接上代码:
package com.kincai.testcustomview_pointprogress;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.support.annotation.Nullable;
import android.support.v4.content.ContextCompat;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;
/**
* Copyright (C) 2015 The KINCAI Open Source Project
* .
* Create By KINCAI
* .
* Time 2017-06-14 10:23
* .
* Desc 水平圆点进度条
*/
public class DotPollingView extends View {
private final String TAG = this.getClass().getSimpleName();
/**
* 进度当前圆点画笔和正常圆点画笔
*/
private Paint mSelectedPaint = new Paint(), mNormalPaint = new Paint();
/**
* 正常圆点颜色
*/
private int mColor;
/**
* 变大圆点的颜色
*/
private int mSelectedColor;
/**
* 圆点总数
*/
private int mDotTotalCount = 3;
/**
* 正常圆点半径
*/
private int mDotRadius;
/**
* 当前变化的圆点半径变化量 0.0 - (mDotMaxRadius - mDotRadius)之间
*/
private float mDotCurrentRadiusChange;
/**
* 圆点大小变化率
*/
private float mRadiusChangeRate;
/**
* 最大圆点半径
*/
private int mDotMaxRadius;
/**
* 圆点最大间距
*/