Android масштабирует изображение по вертикали

1

Я пытаюсь создать мини-индикатор выполнения, который укажет, сколько данных пользователь использовал. Это даже не нужно анимировать, мне просто нужно изменить размер на основе переменной, которую я настроил. Поэтому, когда я загружаю экран, какая часть полосы выполнения заполняется, будет зависеть от переменной, которую я создал на Java.

Мне удалось получить эту работу горизонтально, используя

scale =  new ScaleAnimation(0.0f, 1.5f, 1.0f, 1.0f,1.0f, 1.0f);

Это запустит изображение из ничего и растянется до его полного размера, поэтому я могу использовать его как горизонтальную полосу хода, которая великолепна.

Теперь я подумал бы, что делать это вертикально вместо этого было бы простым делом просто изменить значение fromY на 0 и toY на новый размер, который я хочу. Однако, когда я это делаю, изменяя значение от Y до 0.0f и toY до 2.0f, изображение фактически перемещается и растягивается в то же время, а не растягивается. По какой-то причине изображение перемещается по позиции. Он начинается выше, чем когда я позиционирую использование XML, и перемещается в исходное положение и растягивается до новой установленной мной шкалы.

Код, который я использую, чтобы попытаться растянуть его по вертикали

scale =  new ScaleAnimation(1.0f, 1.0f, 0.0f, 2.0f, 1.0f, 1.0f);

Так кто-то может объяснить, почему он растягивается горизонтально, но когда я пытаюсь растянуть его по вертикали, он внезапно перемещается и растягивается одновременно.

Был бы очень благодарен за любую помощь.

  • 1
    Звучит так, как будто вы масштабируете изображение из контрольной точки, которая находится за пределами изображения. Я верю, что вы хотите использовать центр. Последние два значения в вызове метода должны быть координатами x / y точки, относительно которой масштабируется объект. Поэтому убедитесь, что это центр бара
  • 0
    Но почему это не проблема с горизонтальным масштабированием? С горизонтальным масштабированием я просто оставляю их на 1.0f для последних двух, и изображение остается на том же месте.
Показать ещё 1 комментарий
Теги:

1 ответ

1
Лучший ответ

Я ценю, что вы решили проблему анимации, о которой вы упомянули, но на основании того, что вы говорите, что вам даже не нужна панель для анимации, класс ClipDrawable может сделать вашу жизнь проще. Вы можете определить один в макете xml, а затем установить уровень клипа из своего кода, который будет зажимать данную выделенную на данную сумму.

Проверьте это, чтобы узнать больше о том, как его использовать:

http://developer.android.com/guide/topics/resources/drawable-resource.html#Clip

Надеюсь, что это поможет.

  • 0
    На самом деле это будет идеально для следующей функции, которую я должен создать, ура

Ещё вопросы

Сообщество Overcoder
Наверх
Меню