- I am capturing image and storing it
- Images are getting created in specified path
- But I cannot display the images by obtaining from cursor
How to resolve this
How I am storing image after capturing it::
private void createFile(byte[] fileData) throws IOException {
FileOutputStream out=null;
try {
//Create the directory
String mDirectoryPath = Environment.DIRECTORY_PICTURES + LinksAndKeys.DIRECTORY_PATH_FOR_IMAGES;
String mImageName = System.currentTimeMillis()+".jpg";
File root = Environment.getExternalStoragePublicDirectory(mDirectoryPath);
File dir = new File(root + File.separator);
if (!dir.exists()) dir.mkdir();
//Create file..
File file = new File(root + File.separator + mImageName);
file.createNewFile();
out = new FileOutputStream(file);
if(out!=null){
out.write(fileData);
}
}
catch (FileNotFoundException e) {
e.printStackTrace();
}catch (IOException e) {
e.printStackTrace();
}catch (Exception e) {
e.printStackTrace();
}finally {
out.close();
}
}
How I am trying to get the URI's of created images::
private ArrayList<String> loadPhotosFromNativeGallery() {
final String[] columns = { MediaStore.Images.Media.DATA, MediaStore.Images.Media._ID };
final String orderBy = MediaStore.Images.Media.DATE_TAKEN;
Cursor imagecursorExternalUri = getActivity().managedQuery(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, columns, null,
null, orderBy + " DESC");
Cursor imagecursorInternalUri = getActivity().managedQuery(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, columns, null,
null, orderBy + " DESC");
Cursor[] cursorArray = { imagecursorExternalUri, imagecursorInternalUri};
MergeCursor mMergeCursor = new MergeCursor(cursorArray);
ArrayList<String> imageUrls = new ArrayList<String>();
for (int i = 0; i < mMergeCursor.getCount(); i++) {
mMergeCursor.moveToPosition(i);
int dataColumnIndex = mMergeCursor.getColumnIndex(MediaStore.Images.Media.DATA);
imageUrls.add(mMergeCursor.getString(dataColumnIndex));
System.out.println("=====> Array path => "+imageUrls.get(i));
}
return imageUrls;
}