Я создаю приложение, которое загружает Drawables из ресурса и отображает его в заполнителе ImageView.Когда пользователь нажимает кнопку, чтобы загрузить следующее изображение, я создал анимацию, которая перемещает и масштабирует старое изображение в новом месте и загружает новый объект рисования для заполнителя.
После 30images Я использую OOM, что имеет смысл.
Я пытаюсь сделать повторную выборку каждого изображения после завершения анимации, поскольку я начинаю с заполнителя 500X500 и заканчиваю 1/3 его.
Проблема в том, что после завершения анимации ширина и высота ImageView остаются неизменными.Разве масштабирующая анимация не должна изменять ширину и высоту ImageView?
Вот код для анимации:
//create the animation
imageView.setPivotX(0);
imageView.setPivotY(0);
imageView.animate()
.scaleX(scaleX) //about 0.3
.scaleY(scaleY) //about 0.3
.x(finalX) //location x of the image
.y(finalY) //location y of the image
.setListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
int reqWidth = imageView.getWidth(); //result 500 as expected
int reqHeight = imageView.getHeight();//result 500 as expected
Drawable image = imageView.getDrawable();
}
@Override
public void onAnimationEnd(Animator animation) {
int reqWidth = imageView.getWidth();//result 500 - why?
int reqHeight = imageView.getHeight();//result 500 - why?
Drawable image = imageView.getDrawable();
}
@Override
public void onAnimationCancel(Animator animation) {}
@Override
public void onAnimationRepeat(Animator animation) {}
});