Лучший способ анимировать изображения кадр за кадром в 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, хотя.

Другие вопросы по тегам