BlackBerry делает недействительной проблему со скоростью - PullRequest
0 голосов
/ 08 февраля 2011

У меня есть настраиваемое поле с ползунком громкости (просто цветная линия), я хочу обновить ползунок при перемещении трекпада, есть ли какой-то другой способ, кроме вызова аннулирования?Потому что это очень медленно для меня, попытка также делает недействительным только регион, но с тем же результатом.Так есть ли способ перекрасить часть поля без аннулирования?

protected boolean navigationMovement(int dx, int dy, int status, int time) {
    if (dx >0) {
        if (value < maxValue) {
            value++;
            invalidate(xPosSlider + value*sliderStep, getHeight()/2 - SLIDER_HEIGHT/2, sliderStep, SLIDER_HEIGHT);                                  
            return true;
        }
    } else if (dx < 0) {
        if (value > 0) {
            value--;
            invalidate();
            return true;
        }
    }

    return super.navigationMovement(dx, dy, status, time);
}

1 Ответ

1 голос
/ 08 февраля 2011

Первое место, которое нужно посмотреть, это ваш собственный код. Вы делаете что-то отнимающее много времени на четном потоке, которое препятствует своевременному выполнению операций рисования? Это вероятная проблема.

В противном случае вы можете попробовать вызвать метод рисования напрямую, как показано здесь . Но лучшее решение - убедиться, что ваш поток событий не связан с выполнением работы, которая должна выполняться в отдельном потоке.

...