2017-07-27 5 views
-2

Mon application prend une photo et enregistre sous Galerie/MyAppname /. Je veux juste ouvrir le répertoire de mon application qui se trouve sous Galerie. Je veux juste voir toutes les images.Android comment ouvrir un directeur spécifique dans la galerie

Je veux voir toutes les photos de la même manière que l'application Galerie. Plese vérifier la capture d'écran: -

enter image description here

+0

se réfèrent https://stackoverflow.com/questions/10749351/how-to-open-one-particular-folder-from-gallery-in-android – sasikumar

Répondre

0

code suivant ouvre le répertoire spécifique à Gallary. Ce code fonctionne très bien pour les anciens et les nouveaux appareils Android. Je l'ai testé jusqu'à Android 6.

public static void openGallery(Context context) { 
     String bucketId = ""; 
     final String[] projection = new String[] {"DISTINCT " + MediaStore.Images.Media.BUCKET_DISPLAY_NAME + ", " + MediaStore.Images.Media.BUCKET_ID}; 
     final Cursor cur = context.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, null, null, null); 
     while (cur != null && cur.moveToNext()) { 
      final String bucketName = cur.getString((cur.getColumnIndex(MediaStore.Images.ImageColumns.BUCKET_DISPLAY_NAME))); 
      if (bucketName.equals("Your_dir_name")) { 
       bucketId = cur.getString((cur.getColumnIndex(MediaStore.Images.ImageColumns.BUCKET_ID))); 
       break; 
      } 
     } 
     Uri mediaUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI; 

     if (bucketId.length() > 0) { 
      mediaUri = mediaUri.buildUpon() 
        .authority("media") 
        .appendQueryParameter("bucketId", bucketId) 
        .build(); 
     } 
     if(cur != null){ 
      cur.close(); 
     } 
     Intent intent = new Intent(Intent.ACTION_VIEW, mediaUri); 
     context.startActivity(intent); 
    } 
1

Vous pouvez utiliser une implémentation MediaScannerConnectionClient

package com.data.pictures; 

import java.io.File; 

import android.app.Activity; 
import android.content.Context; 
import android.content.Intent; 
import android.media.MediaScannerConnection; 
import android.media.MediaScannerConnection.MediaScannerConnectionClient; 
import android.net.Uri; 
import android.os.Bundle; 
import android.os.Environment; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 

public class Pictures extends Activity { 
    String SCAN_PATH; 
    File[] allFiles ; 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_browse_picture); 

     File folder = new File(Environment.getExternalStorageDirectory().getPath()+"/test/"); 
     allFiles = folder.listFiles(); 

     ((Button) findViewById(R.id.button1)) 
       .setOnClickListener(new OnClickListener() { 
        public void onClick(View arg0) { 
         new SingleMediaScanner(Pictures.this, allFiles[0]); 
        } 
       }); 
    } 

    public class SingleMediaScanner implements MediaScannerConnectionClient { 

     private MediaScannerConnection mMs; 
     private File mFile; 

     public SingleMediaScanner(Context context, File f) { 
      mFile = f; 
      mMs = new MediaScannerConnection(context, this); 
      mMs.connect(); 
     } 

     public void onMediaScannerConnected() { 
      mMs.scanFile(mFile.getAbsolutePath(), null); 
     } 

     public void onScanCompleted(String path, Uri uri) { 
      Intent intent = new Intent(Intent.ACTION_VIEW); 
      intent.setData(uri); 
      startActivity(intent); 
      mMs.disconnect(); 
     } 

    } 
} 

Pour la question à jour je suggère l'utilisation ce lien pour comprendre Link

+0

il montre un pic en plein écran et je dois faire défiler pour voir la photo suivante. Je veux montrer toutes les images dans la vue de grille juste comme montré dans l'application de galerie. S'il vous plaît vérifier la question éditée pour plus de détails! – masiboo

+0

@masiboo utilise gridview pour afficher toutes les images – Developer

+0

@masiboo J'ai mis à jour ma réponse – Developer