无法解析压缩图片文件的符号 - 安卓Firebase图片上传



我正在尝试将图像加载到Firebase内存中,并将其转换为最大位图高度和宽度1200。但是当我尝试将转换后的图像的位图图像发送到上传操作时,它说Unable to resolve the 'selectedImage'符号。

这是我的活动:

private void openFileChooserOne() {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(intent, PICK_IMAGE_REQUEST);
}
public Bitmap getResizedBitmap(Bitmap image, int maxSize) {
int width = image.getWidth();
int height = image.getHeight();
float bitmapRatio = (float) width / (float) height;
if (bitmapRatio > 1) {
width = 1200;
height = (int)(width / bitmapRatio);
} else {
height = 1200;
width = (int)(height * bitmapRatio);
}
return Bitmap.createScaledBitmap(image, width, height, true);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK &&
data != null && data.getData() != null) {
try {
Uri imageUri = data.getData();
InputStream imageStream = getContentResolver().openInputStream(imageUri);
Bitmap selectedImage = BitmapFactory.decodeStream(imageStream);
selectedImage = getResizedBitmap(selectedImage, 1200);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
private void uploadFile() {
FirebaseUser user = mAuth.getCurrentUser();
String userID = user.getUid();
if (mImageUri != null && mImageMedicalUri != null) {
StorageReference fileReference = mStorageRef.child(userID).child("photo.jpg");
mUploadTask = fileReference.putFile(selectedImage)
.addOnSuccessListener(new OnSuccessListener < UploadTask.TaskSnapshot > () {
//...
})
}
}

我是 Java 的新手,我试图弄清楚我是否正在发送字符串并导致错误,或者我在这里做错了什么?

如果要在uploadFile()方法主体中使用selectedImage变量,则需要selectedImage成为 Activity 类的一个字段,如下所示:

private Bitmap selectedImage; 
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK &&
data != null && data.getData() != null) {
try {
Uri imageUri = data.getData();
InputStream imageStream = getContentResolver().openInputStream(imageUri);
selectedImage = getResizedBitmap(BitmapFactory.decodeStream(imageStream), 1200);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
private void uploadFile() {
//selectedImage now resolved
}

最新更新