나는 웹 서비스에서 데이터를 끌어와 ListView에 표시하는 조각이 있습니다. 행 배경에 사용할 수있는 10 개의 다른 선택기가 있습니다. 배경이 반복되면 배경이 반복됩니다.안드로이드 ListView 행 배경 OutOfMemory 문제가 발생
내가 직면 한 문제는 기기 (Galaxy Nexus!)가 이러한 배경을 모두 표시 할 수 없다는 것입니다. setbackgroundResource를 통해 백그라운드를 설정할 때 OS는 메모리를 확보하기 위해 GC를 계속 호출하므로 ListView 스크롤이 극도로 고르지 않게됩니다.
그래서 대신 Drawables를 캐시하려고했습니다. 나는 개선을 보았지만, 디바이스는 얼마나 많은 Drawable이 캐쉬되는지 OutOfMemory exception bedcause를 던질 것이다. 얼마나 많은 캐쉬가 있는지를 보여주기 위해 각각의 드로어 블을 두 개 포함하는 10 개의 선택기와 첫 번째와 마지막 두 개의 드로어 블을 모두 포함해야합니다. 이것은 메모리에서 24 드로어 블입니다.
이제 내가 사용하고있는 이미지의 크기가 될 수 있다고 생각 했었습니다. 그리고 크기를 조정하고 비례하여 늘릴 필요가 있지만, 이것이 작동하는지 확실하지 않습니다.
제안 사항? 나는이 논스톱으로 일하는 데 며칠을 보냈으며 실행 가능한/가까운 해결책을 찾지 못했습니다.
감사
아담
감사합니다. 실제로 그 중 많은 정보가 도움이 될 수 있습니다. 첫 번째 생각은 이미지의 크기를 조정하여 밀도 당 배율을 조정하는 것입니다. 사용하는 원본이 상당히 큽니다. 나는 이것이 어떻게 도움이되는지를 알게 될 것이고, 다음으로 나는 그것들을 9 가지로 패치 할 가능성을 더 높일 것이다. 가장 큰 문제는 시스템이 모든 (모든 getList()에서 백그라운드 자원을 설정하여) 핸들링 할 때 ListView가 너무 많은 드로어 블을 한번에로드하려고 시도하기 때문에 너무 빠르게 고르지 않게됩니다. – Mimminito