2014-08-29 1 views
0

Мне нужен индикатор выполнения, показывающий прогресс справа налево или слева направо в зависимости от переменной. У меня также есть текст в середине бара. При этом я использую собственный класс. Для вращающегося бара, я последовал за this нить, но как-то либо текст не отображается, или она вращается, или все, что исчезает из поля зрения ...Справа налево индикатор выполнения с текстом

код без вращения:

protected synchronized void onDraw(Canvas canvas) { 
    super.onDraw(canvas); 
    // draw text 
    } 

I имеют свойство positive, указывающее, следует ли начинать с левого или правого. Было бы легко, если бы у меня не было текста, я бы просто вызвал setRotation() где-то в коде, но теперь я пытаюсь повернуть холст, и я не могу управлять им, чтобы привести все в правильном порядке. Кто-нибудь может мне помочь?

ответ

0

Я только что узнал об этом. Используя this нить, я закончил со следующим кодом:

protected synchronized void onDraw(Canvas canvas) { 
    canvas.save(); 
    if(!positive) { 
     int cx = this.getMeasuredWidth()/2; 
     int cy = this.getMeasuredHeight()/2; 
     canvas.scale(-1f, 1f, cx, cy); 
    } 
    super.onDraw(canvas); 
    canvas.restore(); 
    // draw text 
} 

Я понятия не имею, почему вращение не работает для меня, но метод scale работает отлично.

 Смежные вопросы

  • Нет связанных вопросов^_^