Анимируйте масштабирование по центру изображения в Android с помощью XML - PullRequest
9 голосов
/ 17 сентября 2011

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

Вот XML, который я имею для масштаба:

<scale android:fromXScale="1.0"
    android:fromYScale="1.0"
    android:toXScale="2.0"
    android:toYScale="2.0"
    android:detachWallpaper="true"
    android:duration="3000"></scale>

и в моем коде:

a = AnimationUtils.loadAnimation(this, R.anim.set);
a.reset();
ImageView iv = (ImageView) findViewById(R.id.imageView1);
iv.clearAnimation();
iv.startAnimation(a);

Любая помощь будет оценена! : -)

1 Ответ

27 голосов
/ 17 сентября 2011

Для масштабирования изображения из центра вы должны установить pivotX и pivotY

. Попробуйте этот код для масштабирования из центра и сохранения состояния после масштабирования,

<scale  xmlns:android="http://schemas.android.com/apk/res/android"
  android:fromXScale="1" 
  android:toXScale="5" 
  android:fromYScale="1" 
  android:toYScale="5" 
  android:pivotX="50%" 
  android:pivotY="50%" 
  android:duration="1000" 
  android:fillAfter="true">
</scale>

Спасибо ...

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