@Override public void draw(@NonNull Canvas canvas) { if (mShow) { super.draw(canvas); } } }
@Override protected void onDraw(Canvas canvas, int width, int height, Paint paint) { if (mUseIntrinsicPadding) { canvas.scale(width / RECT_PADDED_BOUND.width(), height / RECT_PADDED_BOUND.height()); canvas.translate(RECT_PADDED_BOUND.width() / 2, RECT_PADDED_BOUND.height() / 2); } else { canvas.scale(width / RECT_BOUND.width(), height / RECT_BOUND.height()); canvas.translate(RECT_BOUND.width() / 2, RECT_BOUND.height() / 2); } onDrawRect(canvas, paint); }
@Override protected void onDrawRect(@NonNull Canvas canvas, @NonNull Paint paint) { int level = getLevel(); if (level == 0) { return; } int saveCount = canvas.save(); canvas.scale((float) level / LEVEL_MAX, 1, RECT_BOUND.left, 0); super.onDrawRect(canvas, paint); if (mShowBackground) { // Draw twice to emulate the background for secondary progress. super.onDrawRect(canvas, paint); } canvas.restoreToCount(saveCount); } }