2017-06-02 14 views
1

ウィジェットをクリックすると、テキスト&の画像がランダムに更新されるというウィジェットについて考えています。私はテキストでこれを行いましたが、私の画像はFirebaseに保存されていて、これらのランダムな画像を取り込んでImageViewで表示したいと思います。だから私はこれをどのようにすることができますか?私FirebaseストレージのFirebaseストレージからイメージのアレイを作成するにはどうしたらいいですか?

スクリーンショット:

base

私のアプリのスクリーンショット:

app

答えて

0

@ Berndの答えの代わりに、インクリメンタルな番号を使ってイメージ名を標準の命名体系に変更できます。あなたはそのようにように、動的に画像のURLを取得できます。

Example image names: 
image_0.jpg 
image_1.jpg 
image_2.jpg 
image_3.jpg 

ランダム画像ファイルパスを生成するためのいくつかの例のJavaコードを:

//The amount of images you have stored 
int maxImages = 4; //Amount of images 
Random random = new Random(); 
//Randomly generate a filepath to an image 
String imageFilePath = "image_" + random.nextInt(maxImages) + ".jpg"; 

あなたはその後、取得するためにFireBaseストレージのgetDownloadUrl()であなたの生成imageFilePathを使用することができます適切なダウンロードURLその後、URLをGlide、Picasso、または別の画像ダウンロードライブラリに渡してImageViewにロードすることができます。

  • メリットのみあなたの目標データベース上

  • 少ないオーバーヘッドを達成するためにFirebaseストレージを使用する必要があり、そこに

を画像のリストを維持する必要はありません

短所

あなたがしっかりとイメージ名を制御する必要が
  • あなたが他の画像の名前を変更することなく、画像を削除した場合、あなたは画像

  • の固定数を持っている必要が全くカスタムイメージ名

  • は壊れませんでした

  • URLを取得すると、画像が見つからない場合に例外がスローされます(例:乱数が範囲外の場合)

+0

あなたの助けのためのtks ...私は行います –

0

ランダムFirebaseストレージから画像を選択するには、あなたが持っている必要がありますどこかのファイルのダウンロードURLのリスト。 this answerに記載されているように、現時点でこれらの写真のリストを取得するApiはありませんので、あなたはどこかのURLを保存する必要があります。

1つの可能性は、ファイルのうちの というURLをFirebaseデータベースに追加することです。 ランダムイメージを選択する場合は、データベース を通過し、このリストからランダムURLを選択します。

ImageViewで実際に表示するには、Glideのようなライブラリを使用して、この処理を簡単にします。 Firebaseの例であるFriendlyPixでは、これを行う方法が示されています。

+0

これは良いアイデアです:)) –

関連する問題