Android从文件夹打开图库

时间:2014-08-25 03:56:02

标签: android android-intent android-image android-gallery

我想在Android画廊中展示一张照片,并能够将其他照片放到该文件夹​​上。

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

这就是我现在如何做,但不会让我滑动扔掉文件夹中的其余图像。 我试过了:

How to open one particular folder from gallery in android?

Built-in gallery in specific folder

Gallery with folder filter

没有运气。 如果有人有解决方案,我会很高兴。 谢谢!

3 个答案:

答案 0 :(得分:10)

试试这个

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

请参阅这些链接

How can I use Intent.ACTION_VIEW to view the contents of a folder?

Android ACTION_VIEW Multiple Images

Java and Android: How to open several files with an Intent?

如果这可以解决您的问题。还要检查

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

还要检查Gallery小部件

答案 1 :(得分:0)

请尝试这种方式,希望这有助于您解决问题。

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

答案 2 :(得分:0)

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

为了显示照片并浏览其他照片,我们需要使意图不是文件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);

}