Там было проще сделать это.У меня была та же проблема, что и у вас, и я потратил много времени, просматривая форумы, чтобы узнать, как создать вертикальный индикатор выполнения.
Для моего приложения мне потребовалось создать пользовательский индикатор выполнения, поэтому я и сделалбыло взять изображение, которое мне дали, а затем использовать функцию масштабирования, чтобы увеличить его.Теперь единственная сложная часть этого заключается в том, что эта часть класса масштаба требует масштабирования вокруг оси изображения, и вы не можете просто использовать заданную плавающую точку, поскольку она будет меняться в зависимости от размера экрана.
Ниже я объясню код одного из моих вертикальных индикаторов выполнения.Я использовал свой вертикальный индикатор выполнения, чтобы показать, сколько данных использовалось для тарифа на телефон, то есть 150 из 500.
Сначала создайте изображение, которое вы хотите масштабировать
ImageView orangeBar;
Затем объявитепеременная масштаба.
ScaleAnimation scaleO;
Конечно, найдите ее
orangeBar = (ImageView) findViewById(R.id.orange);
Затем примените анимацию масштаба следующим образом:
scaleO = new ScaleAnimation(1.0f, 1.0f, 1.0f, 2.0f, 1f,
pivotPercent);
scaleO.setDuration(3000);
scaleO.setFillAfter(true);
orangeBar.setAnimation(scaleO);
Третья и четвертая переменные - это те, которые выизменить, чтобы он рос вертикально.1.0f - размер изображения по умолчанию.И четвертая переменная - это та, с которой вы играете, чтобы она росла столько, сколько вы хотите.
Последняя переменная задает точку поворота, из которой он будет анимирован.Я использовал переменную с именем pivotPercent и использовал метод для расчета сводки.Причина, по которой я это сделал, заключается в том, что переменная сводки должна быть разной в зависимости от размера экрана.Я заметил, что когда я анимировал мой, когда я ставил мой на эмулятор и на свой телефон, это вызывало проблемы.Поэтому я создал метод, который вычислял бы пивот на основе размера экрана.
Поэтому я сначала получил бы высоту экрана примерно так:
Display display = getWindowManager().getDefaultDisplay();
final int height_c = display.getWidth();
Затем я бы сделал это
double getPercent = (double) height_c / 100 * 3.7;
int pivotPercent = (int) getPercent;
Немного поэкспериментировал, чтобы все заработало как надо.
Надеюсь, это поможет, если у вас есть какие-либо вопросы по поводу кода, просто спросите, и я постараюсь уточнить
ОБНОВЛЕНИЕ:
Вот индикатор выполнения при загрузке приложения
и после анимации влияет
В этом случае планка уменьшилась.Как я уже сказал, я использовал свою вертикальную черту, чтобы отметить прогресс.Таким образом, полоса всегда начинается с позиции по умолчанию, как показано на рисунке 1, я просто выбрал произвольную позицию для начала.Тариф из 500, поэтому в приведенном мной примере они использовали 150 из 500. У меня есть метод, который вычисляет процент от использованного тарифа и обновляет планку, чтобы отразить это.
Мне потребовался день или около того, чтобы совершенствоваться, но с ним весело играть.