逐帧动画java.lang.OutOfMemoryError:位图大小超过VM预算

时间:2011-12-26 13:36:25

标签: android animation memory-leaks

我尝试在按钮点击时加载动画。我在资源文件夹中有 90张图片,我尝试加载它们,每张图片都有约。大小 50kb 当我点击按钮开始动画时我得到异常作为OutOfmemory。请检查以下代码。任何帮助将不胜感激。

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

    startbtn=(Button) findViewById(R.id.myStartButton);
    stopbtn=(Button)findViewById(R.id.myStopButton);
    startbtn.setOnClickListener(this);
    stopbtn.setOnClickListener(this);
    images=(ImageView) findViewById(R.id.myImageView);

    images.setBackgroundResource(R.drawable.demo_animation);

    AniFrame = (AnimationDrawable)images.getBackground();



}

public void onClick(View v) {
    if(v.getId()==R.id.myStartButton)
    {
        AniFrame.start();
    }else if(v.getId()==R.id.myStopButton)
    {
        AniFrame.stop();
    }

}

1 个答案:

答案 0 :(得分:2)

图像是压缩的(jpg还是png)?我认为当它们被加载到内存中时,它们会转换为位图格式,并使用更多的内存(每个像素最多4个字节)。 这可能是你的outofmemoryexception的原因。你不能像在磁盘上那样计算90x50kb,想想90 x 750Kb。