2

我正在寻找一种在 Android 中使用 Gallery 打开图像的方法。所以这就是我正在做的事情:用户点击一个图像,所以我用它的“路径”启动一个意图:

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(path, mimeType);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

画廊在特定图像上打开。

我的问题是我无法使用 Gallery 滑动到另一张图片。我必须返回我的应用程序并选择下一张图片才能查看它。

我已经看过这个:特定文件夹中的内置画廊,但它会启动文件夹而不是特定图片。

谢谢

4

1 回答 1

0

我的情况非常相似,我使用了与您相同的方法,但不是像您一样设置数据,而是这样做了。画廊打开,我可以像你问的那样刷照片

Uri uri = GalleryPreviewButton.getImageContentUri(getContext());
Intent galeryIntent = new Intent(Intent.ACTION_VIEW );
galeryIntent.setDataAndType(uri, "image/*");        
this.startActivity(galeryIntent);

这是我用来从文件中获取 Uri 的方法;

public static Uri getImageContentUri(Context context) {
        String filePath = CURRENT_PATH;
        Cursor cursor = context.getContentResolver().query(
                MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                new String[] { MediaStore.Images.Media._ID },
                MediaStore.Images.Media.DATA + "=? ",
                new String[] { filePath }, null);
        if (cursor != null && cursor.moveToFirst()) {
            int id = cursor.getInt(cursor.getColumnIndex(MediaStore.MediaColumns._ID));
            cursor.close();
            return Uri.withAppendedPath(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "" + id);
        } else {
            try{
                ContentValues values = new ContentValues();
                values.put(MediaStore.Images.Media.DATA, filePath);
                return context.getContentResolver().insert(
                        MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
            } catch (Exception e){
                return null;
            }
        }
    }
于 2017-11-06T17:53:38.887 回答