import
android.content.Intent;
import
android.graphics.Bitmap;
import
android.graphics.drawable.BitmapDrawable;
import
android.net.Uri;
import
android.os.Bundle;
import
android.view.View;
import
android.widget.Button;
import
android.widget.ImageView;
import
android.widget.Toast;
import
androidx.appcompat.app.AppCompatActivity;
import
androidx.core.content.FileProvider;
import
java.io.File;
import
java.io.FileOutputStream;
public
class
MainActivity
extends
AppCompatActivity {
Button share;
ImageView imageView;
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
share = findViewById(R.id.share);
imageView = findViewById(R.id.shareimage);
share.setOnClickListener(
new
View.OnClickListener() {
@Override
public
void
onClick(View v) {
BitmapDrawable bitmapDrawable = (BitmapDrawable) imageView.getDrawable();
Bitmap bitmap = bitmapDrawable.getBitmap();
shareImageandText(bitmap);
}
});
}
private
void
shareImageandText(Bitmap bitmap) {
Uri uri = getmageToShare(bitmap);
Intent intent =
new
Intent(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_STREAM, uri);
intent.putExtra(Intent.EXTRA_TEXT,
"Sharing Image"
);
intent.putExtra(Intent.EXTRA_SUBJECT,
"Subject Here"
);
intent.setType(
"image/png"
);
startActivity(Intent.createChooser(intent,
"Share Via"
));
}
private
Uri getmageToShare(Bitmap bitmap) {
File imagefolder =
new
File(getCacheDir(),
"images"
);
Uri uri =
null
;
try
{
imagefolder.mkdirs();
File file =
new
File(imagefolder,
"shared_image.png"
);
FileOutputStream outputStream =
new
FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.PNG,
90
, outputStream);
outputStream.flush();
outputStream.close();
uri = FileProvider.getUriForFile(
this
,
"com.anni.shareimage.fileprovider"
, file);
}
catch
(Exception e) {
Toast.makeText(
this
,
""
+ e.getMessage(), Toast.LENGTH_LONG).show();
}
return
uri;
}
}