import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.util.AttributeSet; import android.view.View; import java.util.Random; /** * 斜线进度条 * author : stone * email : [email protected] * time : 15/10/22 11 11 */ public class ObliqueProgressbar extends View { private Paint mPaint; private float mProgress; public ObliqueProgressbar(Context context) { this(context, null); } public ObliqueProgressbar(Context context, AttributeSet attrs) { this(context, attrs, 0); } public ObliqueProgressbar(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); mPaint = new Paint(); mPaint.setAntiAlias(true); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); if (mProgress == 0) return; //碎片雨 mPaint.setColor(Color.parseColor("#a96ecb")); mPaint.setStrokeWidth(3); Random random = new Random(); int sx, sy; for (int i = 0; i < 200; i++) { sx = random.nextInt(getWidth() + 10); sy = random.nextInt(getHeight() + 10); // canvas.drawLine(sx, sy, sx+random.nextInt(5), sy+random.nextInt(5), mPaint); canvas.drawCircle(sx, sy, random.nextInt(5) + 1, mPaint); } //进度 mPaint.setColor(Color.parseColor("#6AFFFFFF")); mPaint.setStrokeWidth(15); float x = mProgress * getWidth(); for (int i = 0; i < x; i += 30) { canvas.drawLine(i - 30, -10, i + 30, getHeight() + 10, mPaint); } } public void setProgress(float progress) { this.mProgress = progress; invalidate(); } }import android.content.Context; import