Индикатор выполнения с разделителем - это хорошее место для поиска, как упомянул @Nilesh Rathod. Вместо использования canvas.drawRect () вы можете использовать canvas.drawRoundRect (); Краткий пример:
for (int i = 0; i < NUM_SEGMENTS; i++) {
float loLevel = i / (float) NUM_SEGMENTS;
float hiLevel = (i + 1) / (float) NUM_SEGMENTS;
if (loLevel <= level && level <= hiLevel) {
float middle = mSegment.left + NUM_SEGMENTS * segmentWidth * (level - loLevel);
canvas.drawRoundRect(mSegment.left, mSegment.top, middle, mSegment.bottom, mPaint);
mPaint.setColor(mBackground);
canvas.drawRoundRect(middle, mSegment.top, mSegment.right, mSegment.bottom, mPaint);
} else {
canvas.drawRoundRect(mSegment, mPaint);
}
mSegment.offset(mSegment.width() + gapWidth, 0);
}
Я полностью доверяю приведенному выше коду создателю вышеупомянутой ссылки и не претендую ни на одну из них как на мою, поскольку я просто иллюстрирую изменение, которое необходимо внести для достижения желаемого эффекта. Пожалуйста, дайте мне знать, если у вас возникнут дальнейшие проблемы.