Проблема с рамочной анимацией Android и OutOfMemoryError - PullRequest
0 голосов
/ 03 февраля 2012

У меня возникли проблемы с покадровой анимацией: у меня есть приложение с ImageView, в котором я хотел бы показать покадровую анимацию.Мой код выглядит следующим образом: Main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/spotim000" />

</LinearLayout>

, а мой java:

import android.app.Activity;
import android.os.Bundle;
import android.widget.ImageView;

public class AnimationTestActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    ImageView imageView1 = (ImageView) findViewById(R.id.imageView1);
    imageView1.setImageResource(R.drawable.spotlights);
}
}

spotlights.xml:

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">
<item android:drawable="@drawable/spotim000" android:duration="50" />
<item android:drawable="@drawable/spotim001" android:duration="50" />
<item android:drawable="@drawable/spotim002" android:duration="50" />
...
<item android:drawable="@drawable/spotim099" android:duration="50" />
<item android:drawable="@drawable/spotim100" android:duration="50" />

</animation-list>

Я не сделалвключите код, который запускает анимацию - потому что проблема не в этом.Когда я запускаю этот код с помощью эмулятора или с помощью моего HTC Desire - код выполняется с префектом.Однако, когда я запускаю его на Samsung Galaxy S2 - я получаю эту ошибку: «Размер растрового изображения java.lang.outofmemoryerror превышает бюджет vm на растровом изображении»

Когда я удаляю некоторые кадры (оставляя, скажем, 20 изоригинала 101) отлично работает и на галактике.Но мне нужны все кадры, и я не могу понять, почему он работает на HTC Desire, а не на гораздо более сильной Galaxy S2

Я просматривал другие посты с похожей проблемой, но единственную, которую яможет найти это сообщение без ответа: Android-анимация (XML) GOUT OutOfMemoryError: размер растрового изображения превышает бюджет виртуальной машины (только на Motorola Droids?)

Кто-нибудь имеет какие-либо идеи по этому вопросу?

Большое спасибо, Шай:)

...