I'm sure this is a trivial question, but I failed to find an answer.
I'm making an Android app from which I want to open the image viewer showing several images. I know how to do this with only one image:
Intent intent = new Intent();
intent.setAction(android.content.Intent.ACTION_VIEW);
File file1 = new File("/mnt/sdcard/photos/20397a.jpg");
intent.setDataAndType(Uri.fromFile(file1), "image/jpg");
startActivity(intent);
This works perfectly. But how do I pass several images to the viewer?
Thanks!! L.
I want to open the image viewer
There is no "the image viewer" in Android. Devices and users may have many, many different apps that are capable of viewing image/jpeg
files loaded from a local file.
But how do I pass several images to the viewer?
Sorry, but there is no standard Intent
to open multiple files of any sort.
Also, please do not hardcode /mnt/sdcard/
in your app. Please use the proper methods on the Environment
class to determine directories on external storage.
You need to list all files you want to view in a array. Then you display one of the array and when you drag, you show the next image.
ArrayList list;
private DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // Ansi date format
list = new ArrayList();
String path = "c:/temp/";
File dir = new File(path);
for (String dirListing : dir.list()) {
if ((dirListing.endsWith(".jpg")) ||
(dirListing.endsWith(".png")) ||
(dirListing.endsWith(".gif"))) {
try { // write all file-info to a arraylist
File f = new File(path+dirListing);
list.add(f.getCanonicalPath());
list.add(f.getName());
list.add(String.valueOf(f.length()));
String lastModified = dateFormat.format(new Date(f.lastModified()));
list.add(lastModified);
}
catch (IOException e) {
e.printStackTrace();
}
catch (IndexOutOfBoundsException e) {
e.printStackTrace();
}
}
}
Now you can read the array and display then one by one.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With