private static final int MAX_SCROLLBAR_ANGLE_SWIPE = 16;
private static final int MIN_SCROLLBAR_ANGLE_SWIPE = 6;
private static final float WIDTH_PERCENTAGE = 0.02f;
- private static final int DEFAULT_THUMB_COLOR = 0x4CFFFFFF;
- private static final int DEFAULT_TRACK_COLOR = 0x26FFFFFF;
+ private static final int DEFAULT_THUMB_COLOR = 0xFFE8EAED;
+ private static final int DEFAULT_TRACK_COLOR = 0x4CFFFFFF;
private final Paint mThumbPaint = new Paint();
private final Paint mTrackPaint = new Paint();
private final RectF mRect = new RectF();
private final View mParent;
+ private final int mMaskThickness;
public RoundScrollbarRenderer(View parent) {
// Paints for the round scrollbar.
mTrackPaint.setStyle(Paint.Style.STROKE);
mParent = parent;
+
+ // Fetch the resource indicating the thickness of CircularDisplayMask, rounding in the same
+ // way WindowManagerService.showCircularMask does. The scroll bar is inset by this amount so
+ // that it doesn't get clipped.
+ mMaskThickness = parent.getContext().getResources().getDimensionPixelSize(
+ com.android.internal.R.dimen.circular_display_mask_thickness);
}
public void drawRoundScrollbars(Canvas canvas, float alpha, Rect bounds) {
startAngle = clamp(startAngle, -SCROLLBAR_ANGLE_RANGE / 2,
SCROLLBAR_ANGLE_RANGE / 2 - sweepAngle);
- // Draw the track and the scroll bar.
+ // Draw the track and the thumb.
+ float inset = thumbWidth / 2 + mMaskThickness;
mRect.set(
- bounds.left - thumbWidth / 2,
- bounds.top,
- bounds.right - thumbWidth / 2,
- bounds.bottom);
-
+ bounds.left + inset,
+ bounds.top + inset,
+ bounds.right - inset,
+ bounds.bottom - inset);
canvas.drawArc(mRect, -SCROLLBAR_ANGLE_RANGE / 2, SCROLLBAR_ANGLE_RANGE, false,
mTrackPaint);
canvas.drawArc(mRect, startAngle, sweepAngle, false, mThumbPaint);