studio programacion para herramientas fundamentos desarrollo con avanzado aplicaciones android bitmap uri android-bitmap

programacion - manual android studio avanzado



¿Hay una manera de obtener URI de mapa de bits sin guardarlo en sdcard? (2)

Estoy creando una aplicación que le permite al usuario compartir una imagen con la intención de Android pero cómo obtener ese URI de

Un mapa de bits sin necesidad de guardarlo en la tarjeta SD.

He usado este código que funciona bien, pero no necesito guardar este mapa de bits en la tarjeta SD

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); }

Necesito obtener ese URI sin guardar ese mapa de bits en la tarjeta SD


Prueba de esta manera

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); }

después de eso puedes borrar archivos usando File.delete()


Prueba esto:

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 }