2015-11-07 4 views
0

J'ai créé une galerie personnalisée application en utilisant des méthodes de chargeur d'image universelleBug du fichier image de suppression en utilisant Android

Maintenant, je suis la cueillette à une image de la galerie et la déplacer à mon dossier d'application. Et je supprime l'image sélectionnée particulière de la Galerie. Le problème est maintenant que, même après la suppression de l'image, l'imge est toujours visible dans la Galerie et clignote montrant 0,0 Ko de mémoire dans le même nom de fichier.Comment effacer le bug

S'il vous plaît aidez-moi comment résoudre ce bug.

Note:

J'ai déplacé l'image du chemin source vers la destination. Et ma destination a reçu l'image particulière.

Et puis quand je enfin supprimer l'image de la partie source, l'image est encore visible même nom de fichier par exemple: la taille de la mémoire IMG_20151106_193.jpg 0.0kB

Code Ligne:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    try { 
     if (resultCode == RESULT_OK) { 

      ArrayList<String> result = data.getStringArrayListExtra(Gallery_picker.KEY_ARRAYLIST_SELECTED_PHOTOS); 
      mSelectedPhotos.clear(); 
      if (result == null) { 
       return; 
      } 

      Iterator<String> iterator = result.iterator(); 
      while (iterator.hasNext()) 
      { 
       String path = (String) iterator.next(); 
       if (!mSelectedPhotos.contains(path)) 
       { 
        mSelectedPhotos.add(path); 
       } 

      } 

      String[] mStringArray = new String[mSelectedPhotos.size()]; 
      mStringArray = mSelectedPhotos.toArray(mStringArray); 
      for(int i = 0; i <mStringArray.length ; i++) 
      { 

       String path=""+ (String)mStringArray[i];//it contain your path of image..im using a temp string.. 
       String filename=path.substring(path.lastIndexOf("/")+1); 

       /*** Move file in SD Card ***/ 
       try { 
        File extStore = Environment.getExternalStorageDirectory(); 
        fis = new File(path); 
        File fos = new File(extStore +"/Myfoldername/"+Subfoldername+"/"+customsimagename+".jpg"); 
        copyFile(fis, fos); // Copy 
        fis.delete(); 

       } catch (Exception e) 
       { 

        // TODO Auto-generated catch block 
        e.printStackTrace(); 
     //  Toast.makeText(this, "Failed! = " + e.getMessage(),Toast.LENGTH_LONG).show(); 
       } 

      } 
     } 
    } catch (Exception e) { 

    } 


}   
+0

Pouvez-vous mettre un peu de code ce que vous en train de faire? –

Répondre

2

Après le changement chemin imgae, vous devez informer la galerie pour mettre à jour, de sorte que vous devriez envoyer une diffusion pour le faire. Avant 4.4, vous pouvez appeler ceci:

sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,Uri.parse("file://"+Environment.getExternalStorageDirectory()))); 

Après 4.4, essayez ceci:

sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://" + file)));//the file is new image's path 
+0

Désolé Firesun ne fonctionne pas ... –

+0

Quelle est la version de votre application et quel code vous appelez d'au-dessus de deux. – starkshang

+0

en utilisant la version 5.2 de l'application .. Firesun –