Archives
Recent Posts
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Today
Total
관리 메뉴

안드로이드 개발자의 창고

[안드로이드 스튜디오] GlideApp으로 Storage 이미지 불러오기 - 코틀린(Kotlin) 본문

오류 해결

[안드로이드 스튜디오] GlideApp으로 Storage 이미지 불러오기 - 코틀린(Kotlin)

Wise-99 2023. 5. 11. 01:35

 

 

Android에서 Cloud Storage로 파일 다운로드  |  Firebase용 Cloud Storage

5월 10일, Google I/O에서 Firebase가 돌아옵니다. 지금 등록하기 의견 보내기 Android에서 Cloud Storage로 파일 다운로드 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요

firebase.google.com

전에 자바로 했을 때 Download URI를 통해 Glide로 불러왔었는데

GlideApp으로 바로 불러올 수 있다고 하여 시도해봤다.

 

 

1. gradle(Module:app)파일 > plugins > id 'kotlin-kapt' 를 넣는다.

id 'kotlin-kapt'

 

 

 

 

2. 같은 파일 하단 dependencies {...}에 다음 코드 추가

dependencies {

	// GlideApp
    implementation 'com.github.bumptech.glide:glide:4.12.0'
    implementation 'com.firebaseui:firebase-ui-storage:7.2.0'
    implementation 'com.google.firebase:firebase-storage:20.2.0'
    kapt 'com.github.bumptech.glide:compiler:4.12.0'
}

 

 

 

 

3. MyAppGlideModule.kt 파일을 생성하고 다음 코드를 작성

import android.content.Context
import com.bumptech.glide.Glide
import com.bumptech.glide.Registry
import com.bumptech.glide.annotation.GlideModule
import com.bumptech.glide.module.AppGlideModule
import com.firebase.ui.storage.images.FirebaseImageLoader
import com.google.firebase.storage.StorageReference
import java.io.InputStream

@GlideModule
class MyAppGlideModule : AppGlideModule(){
    override fun registerComponents(context: Context, glide: Glide, registry: Registry) {
        registry.append(StorageReference::class.java, InputStream::class.java, FirebaseImageLoader.Factory())
    }
}

 

 

 

 

4. 안드로이드 스튜디오 메뉴 > Build > Clean Project 선택 후 완료되면 Rebuild Project 진행

맨 하단 Clean Project, Rebuild Project 실행

 

 

 

 

5. 이미지 불러오는 코드 작성

내 경우에는 Storage안에 이미지가 바로 들어있고(폴더 없음)

이미지 파일 이름과 각종 정보를 Flower flower 라는 객체에 집어넣어놨다.

.load() : 파일 경로

.into() : 이미지를 불러올 ImageView

val storageReference = Firebase.storage.reference.child("/"+flower.image)

GlideApp.with(context).load(storageReference).into(holder.img)

 

 

 

 

이전에 image를 불러와서 Download URI 가져오고 그걸로 불러왔었는데..

확실히 Glide 보다는 바로 가져올 수 있어 편한 것 같다.

나는 개발 초반이라서 느리거나 하진 않지만 몇몇 블로그들을 보니 Glide보다 느리다고 하시는 분들이 많다.

개발자가 편하면 기능이 떨어지는건가....

 

이미지가 잘 불러와졌다.