我有一个活动(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卡中特定文件夹中存在的所有图像以及下一个和上一个箭头,以便我们可以遍历所有照片。
如果以这种方式无法做到这一点,建议我采用其他方法(也请附上代码)。
答案 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);
}
由于 迪帕克