Код довольно длинный, поэтому я не добавил его, но он основан на этом уроке
Учебное пособие по аквариумным живым обоям
Я думаю, что нашел свой ответ, хотя у меня был спрайт png в папке, которую я создал, с именем drawable, куда я помещал все изображения, я попробовал это снова, но на этот раз поместил спрайт в другие папки, и он не сделал переместить, я попытался также масштабировать спрайт, что сделало его немного шатким, я надеялся использовать вместо этого масштабирование, чтобы оно оставалось одинаковым для всех экранов, это работает для обычных изображений, но для спрайтов это вызывает некоторые проблемы, может быть, я Попробуйте сделать это с наибольшим размером в папке drawable-large-mdpi и посмотрите, не вызывает ли это каких-либо проблем.
Я обновлю этот метод и сообщу вам.
Было бы неплохо иметь только одно изображение и масштабировать его вместо размера экрана.
Хорошо, я наконец нашла ответ, и он может помочь тем, кто создает спрайты, ширина при делении на количество кадров должна быть целым числом, так как измерения в int, а не в float или double, поэтому он перемещается, потому что когда кадр получает разделив его, мы получили дробную часть, которая заставила его двигаться (я полагаю) независимо от того, что было дополнительным измерением с плавающей точкой.
Пример: если спрайт был 100 пикселей в высоту и 1082 пикселей в ширину, и у меня было 15 кадров, ширина каждого кадра составляла бы 72,133333333px в ширину для каждого кадра, что приводило к ошибке, которая приводила бы к перемещению изображения на дополнительную длину, сохраняя анимацию в хорошем состоянии. теперь, если бы он был шириной 1080px, каждый кадр был бы шириной 72px - целое целое число, а затем идеально анимировался.
Таким образом, для тех, кто создает свои собственные спрайты, убедитесь, что широкие равны целому числу, когда кадры разделены (Моя проблема была в том, что я создавал одно изображение, уменьшая его, а не проверяя ширину каждого кадра, поэтому обычно работает только один размер изображения). Иногда мне везло, и я получал два, я должен был понять это, потому что все работает в int, а не в float для измерения ширины.
Надеюсь, что это поможет кому-то еще делать спрайты.
Sam