2017-05-01 3 views
-2

내 앱에 로그인 할 때마다. 이미지가 천천히로드됩니다. 일반적으로로드하는 데 많은 시간이 걸립니다. 내 응용 프로그램에서 이미지 로딩을위한 라이브러리로 Glide을 사용하고 있습니다. firebase에서 이미지를로드하는 것이 느립니다.

Glide.with(photoImageView.getContext()) 
      .load(message.getPhotoUrl()) 
      .into(photoImageView); 

이 위의 코드

는 전체 이미지를로드하는 데 시간이 많이 걸립니다 볼 수있는 내 UI에 ImageView에 이미지를로드하는 데 사용됩니다.

enter image description here

중포 기지 스토리지에서 빠르게 이미지를로드하기 위해 할 수있는 무엇

?

+0

Cloud Storage 용 Firebase SDK에는 인공적인 지연이 없습니다. 이미지를 더 빨리로드하려면 이미지를 작게 만들거나 더 빠르게 연결하십시오. –

+0

전 고속 무선 인터넷에 연결되어 있는데 이것은별로 문제가되지 않을 것입니다. m 이미지를 더 작게 만들려고하지만 이미지를 파이어베이스에서 빨리 얻는 또 다른 방법은 아닐까요? – Chip

+0

그 원인은 속도 저하의 원인에 달려 있습니다. 대기 시간, 대역폭, 로컬 처리 등 현재 진행중인 작업을 조사하는 것이 좋습니다. 현재 설명에서 구체적인 내용을 말하기는 어렵습니다. –

답변

0

Krish (on StackOverflow) 그는이 코드를 바꿀 것을 제안했습니다.

Glide.with(photoImageView.getContext()) 
    .load(message.getPhotoUrl()) 
    .into(photoImageView); 

이 코드는. 그것은 아래의 코드와 완벽하게 작동합니다.

Glide.with(getContext()) 
    .load(message.getPhotoUrl()) 
    .asBitmap() 
    .centerCrop() 
    .into(new SimpleTarget <Bitmap>() { 
    @Override 
    public void onResourceReady(Bitmap resource, GlideAnimation << ? super Bitmap > glideAnimation) { 
     photoImageView.setImageBitmap(resource); 
    } 
    }); 
0

앱이 Glide.preload 시작() 또는

1

가 디스크 캐시 유형을 개정 고려 글라이드 캐시 내장 사용할 때 이미지를 미리로드 할 수 있습니다.

.skipMemoryCache (false)는 특히 Glide가 메모리 캐시를 더 빠르게로드하지 않도록 지시합니다. 또한 .diskCacheStrategy() 메소드를 사용하여 글라이드의 디스크 캐싱 동작을 변경할 수 있습니다.

  • DiskCacheStrategy.NONE 아무것도에게

    DiskCacheStrategy.SOURCE 캐시은 원래 전체 해상도 이미지를 캐시하지 않습니다. 그 위의 예에서 단지 최종 이미지 (기본 동작) (아마도 변환 등) 해상도 을 감소 후

    DiskCacheStrategy.ALL는 모든 버전을 캐시 한

    DiskCacheStrategy.RESULT의 캐시합니다 1000x1000 픽셀 것 이미지

+0

당신은 base64를 사용하고 있습니까 – Remario

+0

무슨 뜻인지 확실하지 않습니다. 나는 안드로이드 개발의 초보자입니다. – Chip

+0

어떻게 인코딩했는지, 이미지를 저장하기 위해 firebase에 보내 었는지, 어떻게 따라 왔는지, 그 방법과 절차는 무엇입니까? – Remario

1

대신 URL에서로드, 당신은 또한 이럴가 글라이드보다 빠르게로드, 또한 피카소 사용을 고려 수 붙박이 중포 기지 이미지 로더

StorageReference storageReference = //make a Reference to your Image 
Glide.with(context) 
     .using(new FirebaseImageLoader()) 
     .load(storageReference) 
     .into(ImageView); 
0

를 사용하여 시도 할 수 있습니다.

관련 문제