Criar tela inicial animada usando quadros no Android
Então aqui está o acordo, eu pesquisei todas as perguntas e os links online, mas nenhum é útil. Eu tenho 120 quadros de uma animação no formato .jpg para minha tela inicial. Eu entendo que jpegs são convertidos em bitmaps na memória e é por isso que recebo um OutOfMemoryError. Os quadros máximos que eu tenho para animar são 10. Existe alguma maneira de fazer isso quadro a quadro, ou devo tentar outra coisa. Aqui está meu código:
final AnimationDrawable anim = new AnimationDrawable();
anim.setOneShot(true);
for (int i = 1; i <= 120; i++)
{
Drawable logo = getResources().getDrawable(getResources()
.getIdentifier("l"+i, "drawable", getPackageName()));
anim.addFrame(logo, 50);
if (i % 3 == 0)
{
System.gc();
}
}
ImageView myImageView = (ImageView) findViewById(R.id.SplashImageView);
myImageView.setBackgroundDrawable(anim);
myImageView.post(new Runnable()
{
public void run()
{
anim.start();
}
});
Coloquei os 120 jpegs na pasta drawable com um prefixo "l" (por exemplo, l1, l2, etc). Eu faço coleta de lixo a cada 3 jpegs, mas isso não faz nada.