там далеко, чтобы сделать Ури растровых с сохранить его на sdcard?
Я делаю приложение, которое позволяет пользователю делиться изображением с помощью Android intent, но как получить этот uri из
Растровое изображение без необходимости сохранять его на sdcard i
Я использовал этот код, который отлично работает, но мне не нужно сохранять это растровое изображение на sdcard
private Uri getImageUri(Context inContext, Bitmap inImage) {
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
inImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
String path = Images.Media.insertImage(inContext.getContentResolver(), inImage, "title", null);
return Uri.parse(path);
}
Мне нужно получить этот uri с сохранением этого растрового изображения на sdcard
2 ответа:
Попробуйте это:
protected void ShareImage(Intent intent) { try { URL url = new URL(mImageUrl); Bitmap image = BitmapFactory.decodeStream(url.openConnection().getInputStream()); intent.putExtra(Intent.EXTRA_STREAM, getImageUri(mActivity, image)); } catch (Exception e) { e.printStackTrace(); } startActivityForResult(Intent.createChooser(intent, 1001)); } public Uri getImageUri(Context inContext, Bitmap inImage) { ByteArrayOutputStream bytes = new ByteArrayOutputStream(); inImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes); String path = MediaStore.Images.Media.insertImage(inContext.getContentResolver(), inImage, "Title", null); return Uri.parse(path); } public void onActivityResult(int requestCode, int resultCode, Intent data){ //check for result is OK and then check for your requestCode(1001) and then delete the file }
Попробуйте вот так
protected void tryToShareImage(Intent intent) { try { URL url = new URL(mImageUrl); Bitmap image = BitmapFactory.decodeStream(url.openConnection().getInputStream()); intent.putExtra(Intent.EXTRA_STREAM, getImageUri(mActivity, image)); } catch (Exception e) { e.printStackTrace(); } startActivity(Intent.createChooser(intent, "Share using...")); } public Uri getImageUri(Context inContext, Bitmap inImage) { ByteArrayOutputStream bytes = new ByteArrayOutputStream(); inImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes); String path = MediaStore.Images.Media.insertImage(inContext.getContentResolver(), inImage, "Title", null); return Uri.parse(path); }
После этого вы можете удалить файлы с помощью
File.delete()