유니버설 이미지 로더 라이브러리를 사용하는 데 문제가 있습니다. 아쉽게도 라이브러리는 응용 프로그램의 메모리 사용량을 많이 발생시킵니다.UniversalImageLoader의 메모리 사용량이 많습니다.
나는 ListView 대신 ScrollView를 사용하는 이유로 ScrollView를 가지고 있는데, 대부분 사용자 지정 삽입 및 항목 선택 애니메이션과 관련이 있습니다. 사용자 지정보기 약 보유. 이러한 사용자 정의보기 각각은 ImageView뿐만 아니라 일부 TextView로 구성됩니다. 지금 여기
그리고이 일이 다음 ImageViews에 dispalyed
이미지는 인터넷에서 다운로드 한 모든 주변 100~150킬로바이트 (치수 × 320 640) 각이있다. UniversalImageLoader를 사용하여 이미지를 다운로드하면 내 응용 프로그램이 약 80Mb 개의 메모리를 사용하기 때문에 OutOfMemoryException과 충돌합니다.
나는 이미지를 다운로드, 그냥 1천2백킬로바이트 (크기 1920 × 1080) 사용자 지정보기 당의 크기에 하드 코딩 된 이미지에 넣지 않으면
, 내 응용 프로그램은 단지 약 를 40Mb 메모리의를 소모한다.을 다운로드 할 때 UniversalImageLoader를 잘못 사용하면 어떻게됩니까? 이미지가 내 앱의 메모리를 두 배나 많이 사용하게됩니까?
캐싱 메커니즘을 모두 비활성화했지만 문제가 여전히 발생합니다.
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(c)
.build();
ImageLoader.getInstance().init(config);
DisplayImageOptions options = new DisplayImageOptions.Builder()
.showStubImage(R.drawable.loading)
.showImageForEmptyUri(R.drawable.loading)
.showImageOnFail(R.drawable.loading)
.cacheInMemory(false)
.cacheOnDisc(false)
.imageScaleType(ImageScaleType.IN_SAMPLE_INT) // default
.build();
그리고 코드
, 나는 다음과 같이 호출 : 내가 잘못 뭐하는 거지ImageLoader im = ImageLoader.getInstance();
im.displayImage("myurl", myimageview, options);
내 UniversalImageLoader 설정은 다음
입니까? 왜 UniversalImageLoader는 많은 양의 메모리를 사용합니까? 다른 모든 거기에 사람들이 갖는 동일한 문제에 대해서는
이미지와 관련된 파일 크기는 메모리 크기와 다를 수 있습니다. 귀하의 100-150KB 숫자가 파일 크기 (압축 됨)를 나타내는 것으로 추측합니다. – kabuko
예, 예를 들어 컴퓨터의 브라우저를 통해 파일을 다운로드하면 모두 100에서 150KB 사이입니다. 그래서 나는 왜 100-150KB 이미지가 1200Kb 이미지보다 더 많은 메모리를 사용하는지 알지 못한다.ImageLoader와 그 캐싱과 관련이 있어야합니다. –
다시 압축하면 ... 픽셀 크기가 중요합니다. – kabuko