Мой пользовательский класс прогрессбар всегда установлен на 100% - PullRequest
0 голосов
/ 14 мая 2019

У меня есть пользовательский индикатор выполнения для моего приложения, я использую класс для анимации прогресса, но когда я вызываю эту функцию, мой индикатор выполнения всегда устанавливается на 100%.

Отлично работает в планшете alcatel A3. но в остальных устройствах, когда я звоню mProgressBar.setProgress(60); всегда он устанавливает полную шкалу прогресса (на самом деле мой прогрессбар имеет максимальный прогресс 200).

Это пользовательский индикатор прогресса моего класса.

public class ProgressBarAnimation extends Animation {
    private ProgressBar mProgressBar;
    private int mTo;
    private int mFrom;
    private long mStepDuration;

    public ProgressBarAnimation(ProgressBar progressBar, long fullDuration) {
        super();
        mProgressBar = progressBar;
        mStepDuration = fullDuration / progressBar.getMax();
    }


    public void setProgress(int progress) {
        if (progress < 0) {
            progress = 0;
        }

        if (progress > mProgressBar.getMax()) {
            progress = mProgressBar.getMax();
        }

        mTo = progress;

        mFrom = mProgressBar.getProgress();
        setDuration(Math.abs(mTo - mFrom) * mStepDuration);
        mProgressBar.startAnimation(this);
    }

    @Override
    protected void applyTransformation(float interpolatedTime, Transformation t) {
        float value = mFrom + (mTo - mFrom) * interpolatedTime;
        mProgressBar.setProgress((int) value);
    }
}

Что не так с моим кодом?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...