Androidクラウドストレージイメージの読み込み(feat.glide)


中に入る。


Androidを開発中にFirebaseを使っていた私はCloudStorageで画像を処理したことがないので差し込みました.
そしてついに今回はその記録を
最終的に私が見たい資料です.😅

Firestoreに格納されているイメージアドレス



こんなにたくさんのデータがあります
Imgurlフィールドにストレージイメージ名を保存しました

CloudStorageにはその名前が入っていますよね?(数字が違う)
この名前で画像をみんなに見せましょう

勾配を追加

 implementation 'com.github.bumptech.glide:glide:4.12.0'
Glide

データの読み込み


まずは私のイメージの名前から始めましょう
ポスターにもありましたが、簡単に書くと、
fun getData() {
	db.collection("Certification").get().addOnSuccessListener { 
       		list = arrayListOf()
            	for (document in task) {
                	val model = Model()

                	val picture = document["Imgurl"] as String
                	model.pictureUrl = picture

                	list.add(model)
            	}
            	adapter = MyAdapter(list)
            	recyclerView.adapter = adapter    
            }
}
複数の画像をロードしてリストに表示する必要がある場合は、上記のコードのようにデータをロードできます.
まずデータのロードのみを行い、次にロードしたデータを画面に表示します.

データの表示


リストについては、Adapterが説明します.
private val storage: FirebaseStorage = FirebaseStorage.getInstance(@string/cloudStorageUrl)
private val storageRef: StorageReference = storage.reference

inner class ViewHolder(itemView: View?): RecyclerView.ViewHolder(itemView!!) {
var imageView: ImageView = itemView!!.findViewById<ImageView>(R.id.item__img)
	fun bind(data: Data, context: Context) {
		storageRef.child(data.pictureUrl.toString()).downloadUrl.addOnCompleteListener{ task ->
                	if (task.isSuccessful) {
                    		Glide.with(context)
                        	     .load(task.result)
                                     .into(imageView)
                         } else {
                            Toast.makeText(context, task.exception.toString(), Toast.LENGTH_SHORT).show()
                          }
              }
      }
}
コードを書きすぎてここで画面の部分に入れました
storageRef.child(data.pictureUrl.toString()).downloadUrl.addOnCompleteListener{ task ->
     if (task.isSuccessful) {
         Glide.with(context)
              .load(task.result)
              .into(imageView)
     } 
この部分です
with()は、環境内のContextまたはオブジェクトの一部です.
load()は、URL、URIなどの受信画像の経路を記録するための部分である.
入力():画像を受信するスペースを入力するだけでいいです.
Filebase Storageの作成者を作成し、受信したurlをダウンロードします.
そして成功したら対応する画像ビューを入れます!
簡単じゃないですか.
コードは挿入されているほど長くないと思います.😓
ただし、ここでは画像ビューサイズ設定のように表示されないため、受信した画像サイズを別のグローバル設定で設定する必要がある.
Glide.with(context)
     .load(task.result)
     .override(150, 150)
     .centerCrop()
     .into(imageView)
幅の高さをoverride(width,height)に設定します.
centerCrop()で画像が見える関数を真ん中に1つ付ければいいです
画像全体を得るために中央からサイズを調整する場合は、fitCenter()を入れるだけです.
もし私が1つのデータだけをロードしてあなたに見せたら?
fun getData() {
	db.collection("Certification").get().addOnSuccessListener {
    	    val imgUrl = task[0]["Imgurl"] as String
            Glide.with(context)
            	.load(imgUrl)
                .into(imageView)
    }
}
うん.こうすればいいんですよね?🙃
参考資料