Лучший способ анимировать изображения кадр за кадром в Android
У меня есть 3 набора по 50 изображений, и я должен создать анимацию для каждого набора изображений в приложении для Android. Я могу создать простое приложение, которое анимирует первый набор из 50 изображений, используя метод ниже,
Добавлен список анимации xml в папку drawable и вызван с помощью frameAnimation.start().
Этот метод не работал, пока я не сохранил следующее "android:largeHeap="true"в файле манифеста.
Я не уверен, является ли это хорошим способом анимировать изображения (если у нас есть больше изображений и каждое изображение большего размера, например, 60 КБ. Изображение в формате JPG) или нет
Я просмотрел и обнаружил, что если нам удастся очистить память и если мы сможем сохранить меньшее количество изображений в памяти, то наше приложение будет работать очень хорошо. Итак, я хочу знать, как очистить память?
Пожалуйста, дайте мне знать, нужно ли мне использовать другой метод для анимации изображений, отличных от описанных выше, чтобы я мог очистить память.
Спасибо за вашу помощь.
3 ответа
Изучив несколько постов и проведя много исследований, я наконец-то закончил программно модифицировать изображения в Imageview для имитации кадровой анимации. Таким образом, я просто поддерживаю три изображения в кеше в любой момент времени (предыдущий, текущий и следующий). Я надеюсь, что это будет полезно для других.
Do this way..
---------------------
ImageView img = (ImageView)findViewById(R.id.some layout);
AnimationDrawable frameAnimation = (AnimationDrawable)img.getDrawable();
frameAnimation.setCallback(img);
frameAnimation.setVisible(true, true);
frameAnimation.start();
and to add animation you can do something like
-----------------------------------------------
<animation-list android:id="@+id/my_animation" android:oneshot="false"
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/frame1" android:duration="150" />
<item android:drawable="@drawable/frame2" android:duration="150" />
</animation-list>
Не очень хорошая идея обрабатывать большое количество изображений в виде фрейма в самом Android, так как это вызовет страшное исключение "Недостаточно памяти".
Очистка самой памяти невозможна. Лучшее решение для этого - правильная обработка растрового изображения приложения.
Я не уверен, но вы можете проверить PhoneGap.
Это движок HTML5, который мы использовали прежде, чтобы создать игру. Рисуя сам холст, мы воссоздали с ним рамочную анимацию. Это просто требует навыков WebDev, хотя.