4

我想要的:点击一个按钮应打开SD卡上特定文件夹中的所有图像。立即打开一个文件夹(SD卡)中的所有图像点击按钮

发生了什么:如果文件夹中有多个图像,则应用程序仅显示单个图像。

按钮单击方法代码:

private void showGallery() { 

    if ((personName.getText().toString() != null && !personName.getText().toString().isEmpty()) 
      && (mobileNo.getText() != null && !mobileNo.getText().toString().isEmpty())) { 

     File folder = new File(Environment.getExternalStorageDirectory(), 
        photoPath + personName.getText().toString() + "_" + mobileNo.getText().toString() + "/"); 

     File[] allFiles = folder.listFiles(); 
     if (allFiles != null && allFiles.length > 0) { 
      for (File child : allfiles) { 
       new SingleMediaScanner(getActivity(), child); 
      } 
     } 
    }  
} 

SingleMediaScanner代码:

public class SingleMediaScanner implements MediaScannerConnection.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(), "image/*"); 
     } 

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

你想在哪里显示你的图片?在一个列表视图? –

+0

@alexeypolusov:不,要在库应用程序内打开该文件夹或要打开文件夹。 –

回答

0

使用滑动式卡库(打火等)。这将显示所有图像的堆叠。 下面的链接对你有帮助: https://android-arsenal.com/details/1/222

+0

我不想使用库。想要通过MediaScanner解决它。 –