2017-07-27 15 views
-2

私のアプリは写真を撮りギャラリー/ MyAppname /の下に保存します。ギャラリーの下にあるMy appのディレクトリを開くだけです。私はすべての写真を見たいだけです。Androidギャラリーで特定のディレクターを開く方法

すべての写真をギャラリーアプリと同じように見たいです。 pleseはスクリーンショットをチェック: -

enter image description here

+0

をテストし、それは1枚の写真を示しhttps://stackoverflow.com/questions/10749351/how-to-open-one-particular-folder-from-gallery-in-android – sasikumar

答えて

0

次のコードを理解するために使用このリンクを示唆している特定のディレクトリを開きますギャラリーでこのコードは古いAndroidデバイスと新しいAndroidデバイスの両方でうまく動作します。私は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

更新された質問について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(); 
     } 

    } 
} 

を使用することができますが、私はLink

+0

を参照してください。全画面表示で、次の画像を見るためにスクロールしなければなりません。ギャラリーアプリに表示されているのと同じように、すべての写真をグリッドビューで表示したいと思います。詳細については、編集した質問を確認してください! – masiboo

+0

@masibooすべての画像を表示するにはgridviewを使用してください – Developer

+0

@masiboo私は私の答えを更新しました – Developer

関連する問題