我尝试了较旧的方法
var bitmap = MediaStore.Images.Media.getBitmap()现在已被描述,我浏览了网络,但找不到令人满意的方法。请提出任何将图像上传到Firebase存储的方法。
答案 0 :(得分:2)
从像这样的图库中选择图片:
private fun selectImageFromGallery() {
val intent = Intent()
intent.type = "image/*"
intent.action = Intent.ACTION_GET_CONTENT
startActivityForResult(
Intent.createChooser(
intent,
"Please select..."
),
GALLERY_REQUEST_CODE
)
}
onActivityResult像这样:
override fun onActivityResult(
requestCode: Int,
resultCode: Int,
data: Intent?
) {
super.onActivityResult(
requestCode,
resultCode,
data
)
if (requestCode == GALLERY_REQUEST_CODE
&& resultCode == Activity.RESULT_OK
&& data != null
&& data.data != null
) {
// Get the Uri of data
val file_uri = data.data
uploadImageToFirebase(file_uri)
}
}
上传图片:
private fun uploadImageToFirebase(fileUri: Uri) {
if (fileUri != null) {
val fileName = UUID.randomUUID().toString() +".jpg"
val database = FirebaseDatabase.getInstance()
val refStorage = FirebaseStorage.getInstance().reference.child("images/$fileName")
refStorage.putFile(fileUri)
.addOnSuccessListener(
OnSuccessListener<UploadTask.TaskSnapshot> { taskSnapshot ->
taskSnapshot.storage.downloadUrl.addOnSuccessListener {
val imageUrl = it.toString()
}
})
?.addOnFailureListener(OnFailureListener { e ->
print(e.message)
})
}
}
如您所见,您不需要任何位图