Picasso – obtener el camino de la imagen cargada

Estoy utilizando Picasso en mi aplicación de Android para cargar imágenes de la URL. Estas imágenes se muestran en algunos ListView . Cuando el usuario hace clic en algún elemento de este ListView , necesito crear un Intent uso compartido con la imagen seleccionada.

Creo la intención de compartir con este código:

 Intent shareIntent = new Intent(); shareIntent.setAction(Intent.ACTION_SEND); shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(new File(localPath)); shareIntent.putExtra(Intent.EXTRA_TEXT, mUrl); shareIntent.setType("image/jpg"); startActivity(Intent.createChooser(shareIntent, getString(R.string.label_share))); 

En el código anterior, hay una variable local localPath . Esta variable debe contener la ruta a la imagen. Supongo que Picasso tiene algún caché, donde se almacenan las imágenes descargadas. ¿Hay alguna forma de recuperar la ruta de la imagen seleccionada?

ACTUALIZACIÓN: Solución parcial

Finalmente, encontré una solución que funciona para mí. Pero no sé, si se trata de una solución correcta o si existe mejor solución.

He creado una clase que implementa la interfaz com.squareup.picasso.Target y en el método onBitmapLoaded(Bitmap bitmap, LoadedFrom from) He proporcionado esta implementación:

 @Override public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) { mImageView.setImageBitmap(bitmap); mImageUri = getBitmapUri(bitmap, mName)); } private Uri getBitmapUri(Bitmap bitmap, String title) { ByteArrayOutputStream bytes = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, bytes); String path = MediaStore.Images.Media.insertImage(mContext.getContentResolver(), bitmap, title, null); return Uri.parse(path); } 

Después de eso, tengo mImageUri que puedo pasar a la intención de compartir. Tal vez esta parte del código sea útil para alguien.

Pero no sé si existe una mejor solución. En mi solución tengo que almacenar Bitmap en disco, pero tal vez hay una misma imagen en el disco ya, porque Picasso lo cargó. Y también, no sé si tengo que eliminar la imagen de MediaStore cuando ya no lo necesito.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.