Как разместить представление вне экрана, чтобы его можно было Анимировать для перемещения по экрану?

У меня есть RelativeLayout, заполняющий экран, и пару ImageView, расположенных на нем с использованием полей LayoutParams. Эти ImageView анимируются по-разному, и в одном случае я хочу, чтобы изображение "влетело" на экран справа.

К сожалению, если я установил leftMargin для этого ImageView больше ширины экрана, он не появляется (или отображается обрезанным, если он частично отображается в начале анимации).

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

Итак, мой вопрос заключается в следующем: как разместить несколько ImageViews on и off экрана, чтобы я мог анимировать их с помощью Animation?

Ответ 1

В конце концов, я использовал трюк: я объединил AnimationDrawable и просмотрел анимацию. Я сделал следующее (предполагая, что анимация должна запускать T миллисекунды):

  • Расположите изображение на экране.
  • Установите в качестве фона AnimationDrawable со следующими кадрами:
    • пустой Drawable: 1ms,
    • normal Drawable: Tms.
  • Измените анимацию вида следующим образом:
    • перейти в положение вне экрана (перевод с длительностью = 1 мс),
    • сделать обычную анимацию.