TLDR 因此,当我尝试在我的应用程序中共享来自另一个应用程序的图像时,我想用所选图像打开一个裁剪意图
在我的应用程序中,可以通过共享意图从另一个应用程序共享图像。因此,例如,您可以在我的应用程序中直接分享来自 Reddit 的图像。它工作得非常好,但我想添加一个可以裁剪图像的功能,因为有些图像上下都有巨大的黑屏(可能因为它们只是屏幕截图)。
我可以裁剪从图库中拍摄的图像。但是,当我从外部意图使用共享时,图像不会保存到我的手机中,因此我无法打开它并裁剪它。
我的代码如何获取图像
private void getData() {
Intent intent = getIntent();
String action = intent.getAction();
String type = intent.getType();
if (Intent.ACTION_SEND.equals(action) && type != null) {
if (type.startsWith("image/")) {
handleSendImage(intent);
}
if (type.startsWith("text/")) {
handleSendText(intent);
}
}
}
void handleSendImage(Intent intent) {
imageUrl = intent.getParcelableExtra(Intent.EXTRA_STREAM);
if (imageUrl != null) {
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
try {
BitmapFactory.decodeStream(getContentResolver().openInputStream(imageUrl),
null,
options);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
choose_image_iv.setColorFilter(0);
Picasso.get().load(imageUrl).fit().into(choose_image_iv);
try {
Bitmap img = MediaStore.Images.Media.getBitmap(getContentResolver(), imageUrl);
if (img == null) return;
int w = img.getWidth();
int h = img.getHeight();
rat = (double) w / (double) (h);
} catch (IOException e) {
e.printStackTrace();
}
if (rat == 0.0) {
rat = 1.0;
}
rightNavButton.setEnabled(true);
rightNavButton.setImageResource(R.drawable.baseline_navigate_next_black_24dp);
rightNavButton.setColorFilter(ContextCompat.getColor(ShareFromOutsideActivity.this, R.color.AppColor));
titleView.setText(R.string.choose_category);
post_text_text_tv.requestFocus();
}else {
new SweetAlertDialog(this, SweetAlertDialog.ERROR_TYPE)
.setTitleText("Mit diesem Bild scheint etwas nicht zu stimmen. Probier ein anderes").show();
}
}