Создавайте анимированные заставки с помощью фреймов на Android
Итак, вот в чем дело, я искал каждый вопрос и ссылку в Интернете, но ни один из них не помог. У меня есть 120 кадров анимации в формате .jpg для моего заставки. Я понимаю, что jpegs преобразуются в растровые изображения в памяти, поэтому я получаю OutOfMemoryError. Максимальное количество кадров, которые я получаю для анимации, - 10. Есть ли способ сделать это кадр за кадром, или я должен попробовать что-то еще. Вот мой код:
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();
}
});
Я поместил 120 jpegs в папку drawable с префиксом «l» (например, l1, l2 и т. Д.). Я делаю сборку мусора каждые 3 JPEG, но это ничего не даст.