Виджет ProgressBar имеет два режима, которые влияют на его внешний вид:
- В режиме прогресса вы получаете прямую линию, в которой вы можете установить значение прогресса по мере продвижения
- В неопределенном режиме вы получаете круговую анимацию, которая вращается до тех пор, пока вы ее не остановите
Недавно я построил индикатор прогресса обратного отсчета, в котором я хотел, чтобы окно «раскручивалось», как часы, движущиеся назад, когда время идет. Это очень похоже на то, что вы хотите сделать, только наоборот.
Что я сделал, так это создал свой собственный класс, который подклассы View. Затем в моем переопределении onDraw () я рисовал прямо на холсте. Это может показаться слишком большой проблемой, но это действительно просто и фактически как бы контролирует весь процесс рисования.
Как-то так, чтобы нарисовать всю коробку ...
@Override
public void onDraw(Canvas canvas) {
Rect rect = canvas.getClipBounds();
rect.inset(10f, 10f);
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeJoin(Join.ROUND);
paint.setColor(Color.BLUE);
paint.setStrokeWidth(10f);
canvas.drawRect(countdownRect, paint);
}
... существует множество методов рисования, которые можно использовать для рисования других фигур, линий, контуров, кругов и т. Д.