0

我有一个活动(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 文件夹中的所有照片。也不会在照片查看器中显示下一个和上一个箭头。

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

如果以这种方式不可能,请建议我其他方法(也请附上代码)。

4

1 回答 1

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);
}

谢谢迪帕克

于 2011-05-18T07:30:12.433 回答