2011-12-26 2 views
2

버튼 클릭시 애니메이션을로드하려고합니다. 리소스 폴더에 이미지이 있는데로드하려고하면 각 이미지가 약합니다. 크기 50kb 버튼 시작 애니메이션을 클릭하면 OutOfmemory로 예외가 발생합니다. 다음 코드를 확인하십시오. 어떤 도움을 주시면 감사하겠습니다.프레임 단위의 애니메이션입니다. java.lang.OutOfMemoryError : 비트 맵 크기가 VM 예산을 초과합니다.

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(); 
    } 

} 
+0

페이지의 오른쪽에있는 "관련"질문을보십시오. 이 질문은 광고 nauseum에 포함되어 있습니다. –

+0

관련 질문을보고 있지만 적절한 해결책을 얻지 못했습니다. –

+0

+1 좋은 질문입니다. :디 – mAc

답변

2

이미지가 압축되어 있습니까 (jpg 또는 png)? 메모리에로드 될 때 비트 맵 형식으로 변환되고 더 많은 메모리 (픽셀 당 최대 4 바이트)를 사용한다고 생각합니다. 아마도 그것이 외 메모리 예외의 원인 일 수 있습니다. 디스크의 90x50kb는 90 x 750Kb로 계산할 수 없습니다.

관련 문제