Android如何从文件夹中打开图库

4

我想在Android相册中展示一张照片,并能够浏览该文件夹中的其他照片。

Intent intent = new Intent(Intent.ACTION_VIEW);
File f = new File(path);
intent.setDataAndType(Uri.parse("file://" + f.getAbsolutePath()), "image/*");
mContext.startActivity(intent);

这是我现在的做法,但无法让我浏览文件夹中的其余图像。 我尝试过以下方法:如何在Android中打开一个特定的图库文件夹?指定文件夹中的内置图库带有文件夹过滤器的图库,但都没有成功。 如果有人能提供解决方案,我将不胜感激。 谢谢!

您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - ShellDude
3个回答

10

试一试

Intent i=new Intent();
i.setAction(Intent.ACTION_VIEW);
i.setDataAndType(Uri.fromFile(new File(path)), "image/*");  
startActivity(i);

请查看以下链接:

如何使用 Intent.ACTION_VIEW 查看文件夹的内容?

Android 如何查看多张图片?

Java 和 Android:如何使用 Intent 打开多个文件?

如果这些链接解决了你的问题,请参考:

https://www.google.co.in/?gfe_rd=cr&ei=c5n9U6ruE7DO8gfXz4G4BA&gws_rd=ssl#q=view+like+gallery

还可以检查 Gallery 小部件。


相同的结果,它显示了图片,但不允许我在文件夹中滑动到其他图片 :C - Nero
只需检查您是否使用了正确的路径。使用Log.e("My Path",path);打印路径即可。上面的代码是有效的。希望这可以帮助您 :) - Nitin
路径没问题,可以显示图片,不要让我滑稽XD。 - Nero
1
我认为我想做的事情是不可能的,就像有些人说的那样,这取决于图像查看器对URI的处理方式。我想我会自己制作一个图像查看器,这样我就可以随心所欲地处理它了。我将把你的回答设为最佳答案,因为你链接到了“不可能”的帖子,所以谢谢你!:D - Nero

1

这个问题是五年前的,但是我想给出一个对我有效的答案,而不是正确的答案。

为了显示照片并通过其他照片滑动,我们需要向意图提供媒体URI,而不是文件URI。

public void ShowPhoto(File imageFile) {

    String mediaId = "";

    String[] projection = new String[] {
            MediaStore.Images.Media._ID,
            MediaStore.Images.Media.DISPLAY_NAME
    };

    Cursor cursor = getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
            projection, null, null, null);

    while (cursor != null && cursor.moveToNext()) {
        String name = cursor.getString((cursor.getColumnIndex(MediaStore.Images.ImageColumns.DISPLAY_NAME)));
        if(name.equals(imageFile.getName())){
            mediaId = cursor.getString((cursor.getColumnIndex(MediaStore.Images.ImageColumns._ID)));
            break;
        }
    }

    Uri mediaUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;

    if(!mediaId.equals("")){
        mediaUri = mediaUri.buildUpon()
                .authority("media")
                .appendPath(mediaId)
                .build();
    }

    Log.d("TagInfo","Uri:  "+mediaUri);

    Intent intent = new Intent(Intent.ACTION_VIEW, mediaUri);
    startActivity(intent);

}

-1

尝试这种方法,希望能够帮助您解决问题。

final int OPEN_GALLERY = 1
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, ""), OPEN_GALLERY);

不行,这样做不了。我已经在文件夹中显示了照片缩略图,但我需要将它们以全屏幕的方式打开并进行幻灯片播放。无论如何感谢您的帮助! - Nero

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接