У мене є ImageView, і я роблю для нього просту масштабну анімацію. Дуже стандартний код.
Мій масштаб_up.xml:
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale android:fromXScale="1"
android:fromYScale="1"
android:toXScale="1.2"
android:toYScale="1.2"
android:duration="175"/>
</set>
Мій анімаційний код:
Animation a = AnimationUtils.loadAnimation(this, R.anim.scale_up);
((ImageView) findViewById(R.id.circle_image)).startAnimation(a);
Проблема:
Коли зображення масштабується, воно масштабується не від центру, а від верхнього лівого кута. Іншими словами, масштабована версія зображення не має тієї самої точки, що і центр, але вона має ту саму верхню ліву точку. Ось посилання, яке пояснює, що я маю на увазі. Перше зображення - це масштаб анімації, а друге - як я хочу, щоб його масштабували. Центральна точка повинна залишатися незмінною. Я намагався встановити гравітацію на зображенні, на контейнері, вирівнюючи ліворуч або праворуч, воно завжди масштабується однаково. Я використовую RelativeLayout для головного екрану, і ImageView знаходиться в іншому RelativeLayout, але я спробував інші макети, ніяких змін.
pivotX
іpivotY
має бути встановлено вдвічі менше,viewportWidth
аviewportHeight
якщо бути точнішим.