1.效果(波纹是会动的哦)
2.上代码
import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.PointF;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
import android.graphics.RectF;
import android.os.Parcel;
import android.os.Parcelable;
import android.util.AttributeSet;
import android.view.View;
import com.example.accessibilitytest.R;
import java.text.NumberFormat;
public class WaveView extends View {
private Path aboveWavePath = new Path();
private Path blowWavePath = new Path();
private Paint aboveWavePaint = new Paint();
private Paint blowWavePaint = new Paint();
private final int default_above_wave_alpha = 50;
private final int default_blow_wave_alpha = 30;
private int waveToTop;
private int aboveWaveColor;
private int blowWaveColor;
private int progress;
private PorterDuffXfermode xfermode_text = new PorterDuffXfermode(PorterDuff.Mode.SRC_ATOP);
/**
* wave length
*/
private int x_zoom = 50;
/**
* wave crest
*/
private int y_zoom = 10;// 控制上下起伏的高度
/**
* offset of X
*/
private final float offset = 0.5f;
private float max_right = x_zoom * offset;
// wave animation
private float aboveOffset = 0.0f;
private float blowOffset = 4.0f;
private Paint mRingPaint;
private Paint mCirclePaint;
private Paint flowPaint;
private float num;
/**
* offset of Y
*/
private float animOffset = 0.1f;// 控制上下起伏的频率
// refresh thread
private RefreshProgressRunnable mRefreshProgressRunnable;
public WaveView(Context context, AttributeSet attrs) {
this(context, attrs, R.attr.waveViewStyle);
init();
}
public WaveView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
progress = 0;
setProgress(progress);
initializePainters();
init();
}
public void init() {