2017-05-08 7 views
2

Androidコードに問題があります。私はAndroidでゲームを開発しています。私は最初に自分のイメージをリソースファイルに保存しました。しかし今、Firebaseに保存したいと思っています。私の計画はPicassoを使ってそれらをダウンロードし、Arraylistに追加することでした。しかし、ドロアブルオブジェクトだけを返すメソッドはありません。 BitMapをフェッチしてドロウアブルに変換しようとしましたが、作業ができませんでした。Firebase DBからAndroid上のドロウアブルリストに画像を保存する方法は?

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

Firefoxベースのストレージに画像をアップロードし、firebaseにURLを保存してください。また、メモリのパフォーマンスに関して、特にピカソのスライドをお勧めします。 – faruk

+0

どうすればデータをダウンロードできますか?私はビットマップを使うべきですか?したがって、グライドとピカソは出力可能オブジェクトを出力しません。 – b2d2

+0

このリンクは、すべてのFirebaseリスティングデータと描画可能リソースのイメージをhttps://stackoverflow.com/a/45328201/5973946 –

答えて

2

ステップ1:すべての画像をFirebase Storageにアップロードします。アップロードされるすべての画像には特定のreferenceが含まれています。この画像は、linksというノードの下にあるFirebase Databaseに保存することができます。

ステップ2linkノードにlistenerを添付し、画像の参照をすべて取得します。

ステップ3:ステップ4

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' 

:あなたはこのビルドの依存関係が必要になりますGlide代わりのPicassoを使用してFirebaseStorageReferenceから画像をロードします。

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

ステップ5:画像をArrayListに追加します。

関連する問題