2017-01-18 2 views
0

RecyclerView에서 ImageView의 크기가 45x45 dp 인 이미지 (약 5MB)를로드하려고합니다. 원본 이미지가 크지 만 대상 ImageView가 작기 때문에 글라이드는 더 작은 버전을로드하지 않습니까? 그래서 글라이드는 평균 인터넷 속도로 몇 초 만에 이미지를로드 할 것으로 기대합니다. 그러나 20 초 정도 걸립니다. 문제가 무엇입니까?큰 이미지를 표시하기 전에 글라이드가 오래 걸립니다.

이미지는 firebase 스토리지에 저장됩니다.

글라이드 코드 :

Glide.with(context).load(firebaseStorageUrl).into(imageView); 

답변

0

글라이드는 크기를 조정하기 전에 인터넷에서 전체 이미지를로드 할 필요가있다. 다운로드에는 처음으로 시간이 오래 걸립니다. 그 다음에는 캐싱이 활성화 된 경우 만든 캐이의 작은 이미지를 사용할 수 있습니다.

+0

1mb보다 큰 서버에 이미지 파일이있는 것은 잘못된 것입니까? – user6650650

+0

정말 당신이 그들과 함께 할 계획에 달려 있습니다. 혹시 고해상도가 필요 없다면, 저장하지 마십시오. 그러나 고해상도 버전이 필요한 경우 다른 폴더에 작은 버전을 추가하거나 "thumb_"과 같은 접두사를 추가해야합니다. –

0

작은 파일을로드하지 않으려면 Glide에서 GifDrawable으로 큰 이미지를로드 할 때 Gif-drawable 라이브러리를 사용하는 것이 좋습니다 (ImageView로 작동).

매우 빠르게 100MB 이상의 파일을로드 할 수 있습니다. 일반 JPG, PNG 및 BMP에서도 작동합니다. GIF 인 경우 지연이나 정지없이 재생됩니다.

android : src 및/또는 android : background로 선언 된 드로어 블이 GIF 파일 인 경우 자동으로 GifDrawables로 인식되어 애니메이션으로 표시됩니다. 지정된 드로어 블이 GIF가 아니라면 뷰는 일반 ImageView 및 ImageButton처럼 작동합니다.

0

Glide 이미지를 먼저 다운로드 한 다음 이미지 크기를 조정하고 이미지를 압축하기 위해 이미지를 비트 맵으로 검색하는 방법이 있습니다. 그러나 문제가 해결되지는 않습니다. 아마도이 문제에 대한 해결책은 두 가지가 있습니다.

  1. 서버의 이미지를 작게 유지하십시오.
  2. 파일을 순식간에 비동기식으로 다운로드하여 파일을 다운로드하는 데 도움이되는 파일 다운로드 라이브러리를 사용하십시오. FileDownloader 라이브러리가 좋은 선택입니다.
관련 문제