2012-10-22 5 views
2

나는 drawable-hdpi에서 drawable-xhdpi에 각각 15 장의 이미지가있다. hdpi 해상도의 장치에서 애플리케이션을 실행할 때 힙 크기가 약 3MB인데도 이미지는 600x600이다. ,하지만 xhdpi 해상도로 장치에서 실행할 때 힙 크기는 40MB 이상이며 메모리가 부족합니다. 무엇이 잘못 되었나요? 이미지가 너무 큽니까?android, xhdpi - 힙

힙 크기 : LDPI : ~ 3메가바이트 MDPI : ~ 3메가바이트 hdpi에 ~ 40메가바이트이 ​​방법으로

이미지로드 : ~ xhdpi 3MB

b1 = BitmapFactory.decodeResource(getResources(), R.drawable.image); 
imageview.setImageBitmap(b1); 

then in OnBackPressed() b1.recycle() 
+0

대신'imageview.setImageResource (R.drawable.image)'를 사용할 수 있습니까? 그렇게하면 비트 맵을 재활용하는 것에 대해 걱정할 필요가 없습니다. –

+0

이런 식으로 더 악한 일이 있습니다 – aptyp

+0

저는 앱에 대해 더 많이 공유해야한다고 생각합니다. (이 이미지로 무엇을하고 있고, 한 번에 얼마나 많은 정보를 보여주고 있는지 등) 아마 더 많은 코드를 얻을 수 있습니다. 더욱이. 당신이 지금까지 보여준 것이 정말로 당신이하는 전부가 아니라면? –

답변

5

이 요청 된 여러 번 before ...로드 할 때 비트 맵에 사용되는 실제 메모리는 H x W x 4입니다. 800 * 800 * 4 * 15 = 38MB. 동시에 15 장의 이미지를로드해서는 안됩니다. 화면의 크기에 관한 것이므로 리샘플링은이 경우 의미가 없으므로 동시에 모두를로드하지 않는 방법을 알아 내야합니다.

+0

같은 시간에로드해야합니다. svg는 어떻습니까? – aptyp

+0

글쎄, 나중에 할 수 없다 :). 원하는 결과를 최종 결과로 결합하는 것은 어떻습니까? – dmon