万圣节, 我有下面的代码,我需要调整/缩小/压缩从图库中选择的图像,而图像的质量没有很大的变化(就像Instagram一样),然后将其上传到Firebase数据库和存储中。请帮帮我!
UploadButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
UploadImageFileToFirebaseStorage();
}
});
DisplayImageButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this, DisplayImagesActivity.class);
startActivity(intent);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == Image_Request_Code && resultCode == RESULT_OK && data != null && data.getData() != null) {
FilePathUri = data.getData();
try {
Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), FilePathUri);
SelectImage.setImageBitmap(bitmap);
ChooseButton.setText("Image Selected");
}
catch (IOException e) {
e.printStackTrace();
}
}
}
public String GetFileExtension(Uri uri) {
ContentResolver contentResolver = getContentResolver();
MimeTypeMap mimeTypeMap = MimeTypeMap.getSingleton();
return mimeTypeMap.getExtensionFromMimeType(contentResolver.getType(uri)) ;
}
public void UploadImageFileToFirebaseStorage() {
if (FilePathUri != null) {
progressDialog.setTitle("Image is Uploading...");
progressDialog.show();
final StorageReference storageReference2nd = storageReference.child(Storage_Path + System.currentTimeMillis() + "." + GetFileExtension(FilePathUri));
// Adding addOnSuccessListener to second StorageReference.
storageReference2nd.putFile(FilePathUri)
.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(final UploadTask.TaskSnapshot taskSnapshot) {
final String TempImageName = ImageName.getText().toString().trim();
progressDialog.dismiss();
Toast.makeText(getApplicationContext(), "Image Uploaded Successfully ", Toast.LENGTH_LONG).show();
storageReference2nd.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
String url = uri.toString();
String ImageUploadId = databaseReference.push().getKey();
ImageUploadInfo imageUploadInfo = new ImageUploadInfo(TempImageName, url);
databaseReference.child(ImageUploadId).setValue(imageUploadInfo);
}
})
```