Utwórz animowany ekran powitalny za pomocą ramek na Androida
Oto oferta, przeszukałem każde pytanie i link online, ale żadna nie jest pomocna. Mam 120 klatek animacji w formacie .jpg dla mojego ekranu powitalnego. Rozumiem, że pliki JPEG są konwertowane na bitmapy w pamięci, dlatego otrzymuję błąd OutOfMemoryError. Maksymalne klatki, które mogę animować, to 10. Czy jest jakiś sposób na zrobienie tego klatka po klatce, czy powinienem spróbować czegoś innego. Oto mój kod:
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();
}
});
Umieściłem 120 jpegów w folderze drawable z prefiksem „l” (np. L1, l2 itd.). Robię zbieranie śmieci co 3 jpeg, ale to nic nie da.