Я хотел бы сжать изображения перед загрузкой и размещением в хранилище. Есть ли способ добиться этого эффективно?
Даже если качество не будет наилучшим, смысл в том, чтобы уменьшить размер.
private void StoringImageToFirebaseStorage()
{
String uri = PostsImagesRefrence.child("Post Images").child(ImageUri.getLastPathSegment() + postRandomName + ".jpg").toString();
StorageReference filePath = PostsImagesRefrence.child("Post Images").child(ImageUri.getLastPathSegment() + postRandomName + ".jpg");
filePath.putFile(ImageUri).addOnCompleteListener(new OnCompleteListener<UploadTask.TaskSnapshot>() {
@Override
public void onComplete(@NonNull Task<UploadTask.TaskSnapshot> task){
if (task.isSuccessful()){
downloadUrl = task.getResult().getDownloadUrl().toString();
SavingInformationToDatabase();
}
else
{.....}
}
private void OpenGallery() {
Intent galleryIntent = new Intent();
galleryIntent.setAction(Intent.ACTION_GET_CONTENT);
galleryIntent.setType("image/*");
startActivityForResult(galleryIntent, Gallery_Pick);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
if (requestCode==Gallery_Pick && resultCode==RESULT_OK && data!=null{
ImageUri = data.getData();
PostImage.setImageURI(ImageUri);
PostImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v){
OpenGallery();
{...}
}