ウィジェットをクリックすると、テキスト&の画像がランダムに更新されるというウィジェットについて考えています。私はテキストでこれを行いましたが、私の画像はFirebaseに保存されていて、これらのランダムな画像を取り込んでImageViewで表示したいと思います。だから私はこれをどのようにすることができますか?私FirebaseストレージのFirebaseストレージからイメージのアレイを作成するにはどうしたらいいですか?
スクリーンショット:
私のアプリのスクリーンショット:
ウィジェットをクリックすると、テキスト&の画像がランダムに更新されるというウィジェットについて考えています。私はテキストでこれを行いましたが、私の画像はFirebaseに保存されていて、これらのランダムな画像を取り込んでImageViewで表示したいと思います。だから私はこれをどのようにすることができますか?私FirebaseストレージのFirebaseストレージからイメージのアレイを作成するにはどうしたらいいですか?
スクリーンショット:
私のアプリのスクリーンショット:
@ 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を取得すると、画像が見つからない場合に例外がスローされます(例:乱数が範囲外の場合)
ランダムFirebaseストレージから画像を選択するには、あなたが持っている必要がありますどこかのファイルのダウンロードURLのリスト。 this answerに記載されているように、現時点でこれらの写真のリストを取得するApiはありませんので、あなたはどこかのURLを保存する必要があります。
1つの可能性は、ファイルのうちの というURLをFirebaseデータベースに追加することです。 ランダムイメージを選択する場合は、データベース を通過し、このリストからランダムURLを選択します。
ImageViewで実際に表示するには、Glideのようなライブラリを使用して、この処理を簡単にします。 Firebaseの例であるFriendlyPixでは、これを行う方法が示されています。
これは良いアイデアです:)) –
あなたの助けのためのtks ...私は行います –