这里的问题是,我在网上搜索了每一个问题和链接,但是没有一个有用的。 我有120个动画帧以.jpg格式保存,用于我的启动屏幕。我知道jpeg文件会在内存中转换成位图,所以我会遇到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个JPEG图片放在drawable文件夹下,并使用“l”前缀(例如l1、l2等)。 我每处理3个JPEG图片就进行一次垃圾回收,但这并没有起到任何作用。