Полоса хода с разделителем

Может кто-нибудь, пожалуйста, объясните мне, как реализовать индикатор выполнения с делителем, как показано на рисунке ниже?

введите описание изображения здесь

Для индикатора выполнения я использую https://github.com/akexorcist/Android-RoundCornerProgressBar, но это, похоже, не имеет опции делителя.

    замените ProgressDrawable мой ответ измененным:

     class ProgressDrawable extends Drawable { private static final int NUM_SEGMENTS = 4; private final int mForeground; private final int mBackground; private final Paint mPaint = new Paint(); private final RectF mSegment = new RectF(); public ProgressDrawable(int fgColor, int bgColor) { mForeground = fgColor; mBackground = bgColor; } @Override protected boolean onLevelChange(int level) { invalidateSelf(); return true; } @Override public void draw(Canvas canvas) { float level = getLevel() / 10000f; Rect b = getBounds(); float gapWidth = b.height() / 2f; float segmentWidth = (b.width() - (NUM_SEGMENTS - 1) * gapWidth) / NUM_SEGMENTS; mSegment.set(0, 0, segmentWidth, b.height()); mPaint.setColor(mForeground); 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.drawRect(mSegment.left, mSegment.top, middle, mSegment.bottom, mPaint); mPaint.setColor(mBackground); canvas.drawRect(middle, mSegment.top, mSegment.right, mSegment.bottom, mPaint); } else { canvas.drawRect(mSegment, mPaint); } mSegment.offset(mSegment.width() + gapWidth, 0); } } @Override public void setAlpha(int alpha) { } @Override public void setColorFilter(ColorFilter cf) { } @Override public int getOpacity() { return PixelFormat.TRANSLUCENT; } } 

    и создать его так:

     Drawable d = new ProgressDrawable(0xdd00ff00, 0x4400ff00); 
     /** * Created by nagendra on 16/06/15. */ public class ProgressBarDrawable extends Drawable { private int parts = 10; private Paint paint = null; private int fillColor = Color.parseColor("#2D6EB9"); private int emptyColor = Color.parseColor("#233952"); private int separatorColor = Color.parseColor("#FFFFFF"); private RectF rectFill = null; private RectF rectEmpty = null; private List separators = null; public ProgressBarDrawable(int parts) { this.parts = parts; this.paint = new Paint(Paint.ANTI_ALIAS_FLAG); this.separators = new ArrayList(); } @Override protected boolean onLevelChange(int level) { invalidateSelf(); return true; } @Override public void draw(Canvas canvas) { // Calculate values Rect b = getBounds(); float width = b.width(); float height = b.height(); int spaceFilled = (int)(getLevel() * width / 10000); this.rectFill = new RectF(0, 0, spaceFilled, height); this.rectEmpty = new RectF(spaceFilled, 0, width, height); int spaceBetween = (int)(width / 100); int widthPart = (int)(width / this.parts - (int)(0.9 * spaceBetween)); int startX = widthPart; for (int i=0; i 

    в макете XM

      ProgressBar progressBar= (ProgressBar)findViewById(R.id.progress_bar_test); ProgressBarDrawable bgProgress= new ProgressBarDrawable(5); progressBar.setProgressDrawable(bgProgress); 
    Давайте будем гением компьютера.