2017-05-08 4 views
2

Android 코드에 문제가 있습니다. Android에서 게임을 개발 중입니다. 먼저 리소스 파일에 이미지를 저장했습니다. 하지만 지금은 Firebase에 저장하고 싶습니다. 나의 계획은 피카소를 사용하여 그들을 다운로드하고 그들을 Arraylist에 추가하는 것이었다. 그러나 drawable 객체를 반환하는 메소드는 없습니다. BitMap을 가져 와서 드로어 블 (drawable)로 변환하려고했으나 작동하지 않았습니다.안드로이드에서 Firebase DB의 이미지를 드로어 블리스트에 저장하는 방법은 무엇입니까?

flagImages=new ArrayList<Drawable>(); 
    flagImages.add(getResources().getDrawable(R.drawable.flag1)); 
    flagImages.add(getResources().getDrawable(R.drawable.flag2)); 
    flagImages.add(getResources().getDrawable(R.drawable.flag3)); 

위의 코드를 변경하고 싶습니다. 아이디어가 있습니까? 무엇을 사용해야합니까? 내 주요 목표는 내 ArrayList에 이미지를 넣는 것입니다.

+0

firebase 저장소에 이미지를 업로드 한 다음 firebase에 URL을 저장하십시오. 특히 메모리 성능이 좋지 않은 경우에는 다음을 수행하십시오. – faruk

+0

어떻게 데이터를 다운로드합니까? 비트 맵을 사용해야합니까? 따라서 글라이드와 피카소는 출력물 드로어 블 오브젝트를 가져 오지 않습니다 – b2d2

+0

드로어 블 리소스 https://stackoverflow.com/a/45328201/5973946에있는 모든 Firebase 리스팅 데이터 및 이미지에 대한 링크입니다. –

답변

2

1 단계 : 모든 이미지를 Firebase Storage으로 업로드하십시오. 업로드 된 모든 이미지는 특정 reference이며 노드 아래의 Firebase Database에 저장할 수 있습니다.

2 단계 : link 노드에 listener을 첨부하고 이미지 참조를 모두 얻으십시오.

3 단계 : 대신 PicassoGlide를 사용하여 FirebaseStorageReference에서 이미지로드 :

compile 'com.firebaseui:firebase-ui-storage:1.2.0' 
compile 'com.firebaseui:firebase-ui-database:1.2.0' 
compile 'com.github.bumptech.glide:glide:3.7.0' 

4 단계 :이 빌드 의존성이 필요합니다.

Glide.with(MainActivity.this) 
    .using(new FirebaseImageLoader()) // <== ADD THIS 
    .load(storageReference) 
    .signature(new StringSignature(localFile.length() + "@" + localFile.lastModified())) 
    .into(images.get(i)); 

5 단계 : ArrayList에 이미지를 추가하십시오.

관련 문제