Я хочу загрузить изображение, снятое с камеры, в Firebase Storage. Я знаю, как сохранить изображение, как только получу формат изображения Uri, но я получаю растровое изображение от работы с камерой. Так что мне нужно знать, как это сделать?
click_picture.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent,2);
}
});
@Override
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Bitmap bitmap = (Bitmap)data.getExtras().get("data");
image.setImageBitmap(bitmap);
}
public String getFileExtendsion(Uri uri){
ContentResolver contentResolver = getActivity().getContentResolver();
MimeTypeMap mime = MimeTypeMap.getSingleton();
return mime.getExtensionFromMimeType(contentResolver.getType(uri));
}
public void uploadFile(){
if(mImageUri!=null){
final StorageReference fileReference = mStorageRef.child("ProfilePicture"+"."+getFileExtendsion(mImageUri));
fileReference.putFile(mImageUri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
fileReference.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
///store the uri
}
});
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.i("Fail",e.getMessage());
}
});
}
}
У меня есть функция uploadFile () для сохранения Uri изображения в хранилище Firebase, а затем получить URL-адрес изображения, чтобы сохранить его в базе данных реального времени Firebase. Но мне нужно преобразовать растровое изображение в Uri? Если да, то как? Код, который я нашел, не работает, и если есть какой-либо другой способ, пожалуйста, скажите мне!
Спасибо за ваше время:)