最近在做一个长按暂停的动画控件,实现的效果是这样:
这里实现的思想主要是利用 pathmesure 去不断截取矩形椭圆的长度,从而形成的动画效果:
核心代码如下:
protected void onDraw(Canvas canvas) {
mDst.reset();
mDst.lineTo(0, 0);
mPaint.setStyle(Paint.Style.FILL);
mPaint.setColor(mPauseBackgroudColor);
RectF bgRect = new RectF(mPadding * 2, mPadding * 2, mWidth - mPadding * 2, mHeight - mPadding * 2);
canvas.drawRoundRect(bgRect, mRadiusBg, mRadiusBg, mPaint);
int leftText = mWidth / 2;
Paint.FontMetricsInt fontMetrics = mPaintText.getFontMetricsInt();
float baseline = (bgRect.bottom + bgRect