2013-09-20 4 views
1

У меня есть 3 набора из 50 изображений, и я должен создать анимацию для каждого набора изображений в приложении для Android. Я могу создать простое приложение, которое анимирует первый набор из 50 изображений с использованием метода ниже:Лучший способ анимации изображений кадр за кадром в Android

Добавлен список анимационных списков анимации в выпадающей папке и называется его использованием frameAnimation.start().

Этот метод не работает, пока я держал следующую «андроида: largeHeap =». Истинный»в файле манифеста

Я не уверен, является ли это хороший способ оживить изображения (если мы имеем больше количество изображений и каждое изображение большего размера, например, 60 КБ. Изображение - формат JPG) или нет

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

Пожалуйста, дайте мне знать, нужно ли мне следовать другой способ анимации изображений, кроме описанных выше, чтобы я мог очистить память.

Благодарим за помощь.

ответ

1

Изучив несколько сообщений и проводя много исследований, я, наконец, окончательно модифицировал изображения в Imageview программно, чтобы имитировать анимацию кадра. Таким образом, я просто сохраняю три изображения в кеше в любой момент времени (предыдущий, текущий и следующий). Надеюсь, что это будет полезно для других.

+2

можете ли вы предоставить фрагмент кода, пожалуйста? –

2
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> 
+1

Hi Brijesh, Спасибо за ваш ответ. Я пошел так же. Когда я использую <список анимации>, он загружает сразу все изображения в память. Поэтому я получаю ИЗ ИСКЛЮЧЕНИЯ ПАМЯТИ. Пожалуйста, дайте мне знать, есть ли другой способ обработки анимации кадра за кадром. –

-1

Это не очень хорошая вещь, чтобы обработать большое количество изображений в кадре подобным образом в самой Android, как это вызовет страшный «Недостаточно памяти» исключение.

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

Я не уверен, но вы можете проверить на PhoneGap.

Его движок HTML5, который мы использовали ранее, чтобы создать игру. Обращаясь к самому холсту, мы с ним воссоздали анимацию кадра. Однако это требует навыков WebDev.

+0

Привет, Не могли бы вы предоставить мне какой-нибудь код ссылки или примера, касающийся использования приложения PhoneGap для создания анимации кадров? Спасибо за вашу помощь. –

+0

Извините за поздний ответ. чтобы суммировать то, что вы хотели видеть, это выглядит следующим образом: setInterval (draw, 1000); функция draw() { MyStage.clearRect (0,0, clearX, clearY); drawYourSprite (координата X, координатаY, spriteWidth, spriteHeight); } его состоит из веб-программирования и javascript, поэтому, если у вас есть фон уже для javascript, это будет намного проще. – gorbos

+0

Спасибо. Я попробую это. :) –