打开照片查看器以显示存储在android中特定文件夹中的所有图像的问题

时间:2011-03-15 14:48:51

标签: android android-gallery

我有一个活动(MyActivity),其中我有一个网格视图。我还有“从画廊添加现有照片”按钮。当我们点击此按钮时,它将打开图库查看器应用程序,在选择图库中的任何照片后,它将更新MyActivity中的网格视图。 此外,我将选定的照片存储在sdcard的myimage文件夹中。

我希望如果我将在网格视图中选择任何特定单元格,它将打开照片查看器以显示该文件夹中存在的所有图像(myimage)。

代码如下:

public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
        try {

        Intent intent = new Intent(Intent.ACTION_VIEW);

        intent.setDataAndType(Uri.parse("file:///sdcard/myimage/*"), 
        "image/*"); 

        startActivity(intent); 

}

此代码在点击网格视图的特定单元格时会打开照片查看器,但不会显示该文件夹中的任何照片。

但如果我使用此代码

public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
        try {

        Intent intent = new Intent(Intent.ACTION_VIEW);

        intent.setDataAndType(Uri.parse("file:///sdcard/myimage/a.jpg"), 
        "image/*"); 

        startActivity(intent); 

}

它只显示照片a.jpg,而不是myimage文件夹中的所有照片。也没有显示photoviewer中的下一个和上一个箭头。

我想显示sd卡中特定文件夹中存在的所有图像以及下一个和上一个箭头,以便我们可以遍历所有照片。

如果以这种方式无法做到这一点,建议我采用其他方法(也请附上代码)。

1 个答案:

答案 0 :(得分:1)

使用以下逻辑获取图库中存在的所有图像的路径。 创建自己的PhotoGrid以显示所有图像。在单独的活动中编写图像视图以显示图像以及下一个或上一个按钮。如果单击下一步按钮,则增加计数器集图像,该图像存在于ArrayList中的该位置。

ArrayList<String> listOfAllImages = new ArrayList<String>();
String absolutePathOfImage = null;
uri = android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI;

            String[] projection = { MediaColumns.DATA,
                    MediaColumns.DISPLAY_NAME };

            cursor = activity.managedQuery(uri, projection, null, null, null);
            column_index = cursor.getColumnIndexOrThrow(MediaColumns.DATA);
while (cursor.moveToNext()) {
absolutePathOfImage = cursor.getString(column_index);
listOfAllImages.add(absolutePathOfImage);
}

由于 迪帕克