Ну, для тех, кто ищет, как это сделать программно: не забудьте установить идентификаторы для ваших Drawables!
Drawable bckgrndDr = new ColorDrawable(Color.RED);
Drawable secProgressDr = new ColorDrawable(Color.GRAY);
Drawable progressDr = new ScaleDrawable(new ColorDrawable(Color.BLUE), Gravity.LEFT, 1, -1);
LayerDrawable resultDr = new LayerDrawable(new Drawable[] { bckgrndDr, secProgressDr, progressDr });
//setting ids is important
resultDr.setId(0, android.R.id.background);
resultDr.setId(1, android.R.id.secondaryProgress);
resultDr.setId(2, android.R.id.progress);
Установка идентификаторов для drawables имеет решающее значение и заботится о сохранении границ и фактического состоянияиндикатора выполнения.
(Кажется, что решение, предложенное vmayatskii вроде работ - но только если вы вызываете setProgress (value) aftrawards, и это значение должно отличаться от текущего значения прогресса)