Проблемы с анимацией продолжительности анимации

Мне нужно создать анимацию кадр за кадром, но у меня есть некоторые проблемы. У меня есть 30 изображений PNG, которые составляют мою анимацию, я загружаю AnimationDrawable с помощью этого кода:

mCurrentAnimation = new AnimationDrawable(); mCurrentAnimation.setOneShot(true); int resId; for (int j = 1; j < 31; j++) { resId = getResources().getIdentifier("resName", "drawable", "com.mindcolorstest.main"); mCurrentAnimation.addFrame(getResources().getDrawable(resId), 1); } 

И логически «mCurrentAnimation.start ()» для запуска. На устройстве mdpi анимация работает нормально, но у меня есть некоторые проблемы с продолжительностью каждого кадра, на эмуляторе hdpi или устройстве, у меня есть некоторое отставание, и если я уменьшу продолжительность кадров (как на mdpi Или hdpi), анимация не будет работать быстрее, например, существует минимальная продолжительность для каждого кадра. Некоторые советы и трюки? Я не знаю, что я должен делать Q_Q Спасибо в любом случае

Я согласен с этим, я делаю более или менее то же самое с xml-анимационным списком, даже на S4, я получаю намного больше времени анимации за кадр, после чего я установил. (Я установил продолжительность 3 мс на фрейм).
Я заработал около 16,16ms за кадр как минимум в среднем более 30 циклов и 85 кадров.

Это может или не может отвечать на scheduleSelf(mAnimationRunnable, now + 1000/60); строк scheduleSelf(mAnimationRunnable, now + 1000/60); В animate() в DrawableContainer . Просто предположение, потому что 1000/60 = 16,66 что должно стать 16 как int / long cast.

Но это может также исходить из какого-то другого ограничения скорости кода или аппаратного обеспечения.
Я не проверял, вызван ли код в этой строке и вызывает это, потому что я не могу как-то сломаться там.
Однако я думаю, что показ не настолько быстр, поэтому он выглядит умным ..