0

4 페이지로 구성된보기 호출기가 있으며 각 페이지에는 listView가 있습니다. 지금까지는 모든 것이 괜찮습니다. 그러나 목록을 스크롤하면 GC_EXTERNAL_ALLOC이 (가) 천 번 반복되며 내 앱의 성능이 향상됩니다. 그래서 나는 DDMS에 의한 할당을 Romain Guy's documentation에 따라 추적하고 목록 항목에 이미지를로드했기 때문에 그것을 보았습니다.리스트 뷰에서 Drawable로 인해 메모리 할당이 너무 많이 발생합니까?

img.setImageDrawable(Drawable.createFromPath(imagePath)); 

내가 할당 트랙을 얻을, 그것은이 라인은 많은 양의 메모리를 할당 한 저를 보여줍니다있을 경우, 내가 사용 전에 구원으로 그 이미지가있을 경우

나는 확인 후 이미지를 저장하고 스크롤하는 동안 ... 왜 그럴까? 그리고 나에게 이미지를로드하는 정서적 인 방법이 있다면?

도움을 주시면 감사하겠습니다.

+0

http://developer.android.com/training/displaying-bitmaps/load-bitmap.html이 링크를 사용하면 도움이 될 것입니다 .... – DynamicMind

+0

애셋 또는 SDCard에서 이미지를로드 중입니까? –

+0

나는 그들을 적재한다. SDCard – yahya

답변

1

나는 당신이리스트 뷰에서 이미지의 일부를 보여줄 필요가 있고이 이미지들이 인터넷에서 나왔다고 생각했다.

은 참조 : http://developer.android.com/training/displaying-bitmaps/index.html

그러나 솔직히 말해서 매우 복잡 : 당신은 찾을 수 Fedors Lazy Loading

+0

에서 나는 Fedors LazyList 예제가 충분히 쉽고 감정적 인 performans를 가지고 있다고 생각한다. 감사. 나는 그것을 줄 것이다. 하지만 왜 아직도 드로어 블에서 가져 오는 것이이 많은 메모리 할당을 유발하는지 궁금합니다. – yahya

1

가장 좋은 문서는 여기에있다. RoboSpice의 다음 버전에서 우리는이 모든 복잡성을 캡슐화하는 방법을 제공하기를 희망합니다 (ui-spicelist 모듈).

+0

사실, 그렇지만 그것을 살펴 보겠습니다. 귀하의 회신에 감사드립니다. – yahya

관련 문제