点击按钮,一次打开文件夹(SD卡)中的所有图像

时间:2016-04-12 08:46:43

标签: android android-camera android-sdcard android-broadcast android-mediascanner

我想要的是什么:点击按钮可以打开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();
        }
    }
}

1 个答案:

答案 0 :(得分:0)

使用Swipable卡片库(Tinder like)。这将显示所有图像的堆栈。 以下链接对您有所帮助: https://android-arsenal.com/details/1/222