Estoy tratando de enviar una actualización fundamental a mi aplicación actualmente en el mercado. Necesito consultar las miniaturas en MediaStore y cargar las miniaturas en un GridView. Hasta ahora todo bien, ahora solo necesito obtener la ruta de la imagen real completa en el Almacenamiento Externo del usuario basado solo en lo que tengo (que es la ruta a la miniatura). Necesito poder realizar 4 acciones cada vez que un usuario haga clic en una miniatura, Compartir, Ver, Mover y Eliminar ... pero no puedo hacer nada de esto con solo la ruta en miniatura, lo he intentado todo, no lo hace trabajo :/. Aquí hay un fragmento de mi implementación a continuación, ¡cualquier ayuda u orientación sobre esto sería muy apreciada!Android obtiene una ruta a la imagen desde la miniatura?
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
int columnIndex = 0;
String[] projection = {MediaStore.Images.Media.DATA};
Cursor cursor = managedQuery(MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI, projection, null, null, null);
if(cursor != null){
columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToPosition(position);
imagePath = cursor.getString(columnIndex);
FileInputStream is = null;
BufferedInputStream bis = null;
try{
is = new FileInputStream(new File(imagePath));
bis = new BufferedInputStream(is);
Bitmap bitmap = BitmapFactory.decodeStream(bis);
useThisBitmap = Bitmap.createScaledBitmap(bitmap, parent.getWidth(), parent.getHeight(), true);
bitmap.recycle();
}catch(Exception e){
//Try to recover
}
finally{
try{
if(bis != null){
bis.close();
}
if(is != null){
is.close();
}
cursor.close();
projection = null;
}catch(Exception e){
}
}
}
Toast.makeText(this, " " + imagePath, Toast.LENGTH_SHORT).show();
Hasta ahora hemos intentado todo con el miembro de imagePath, pero que, o bien provoca excepciones que se arrojen u otros errores. ¿Alguna sugerencia?
¿Qué tienes en el imageadapter para la vista de cuadrícula? – jxgn
Muchas gracias por este código, pero no está dando la ruta exacta de la imagen seleccionada. Cuando estoy seleccionando la primera imagen, está dando la ruta de la segunda imagen. – Prabs
[esto ayudó] (http://stackoverflow.com/a/6548026/4361127) – Prabs