Wednesday 15 September 2010

Android camera image to a custom folder is blank -



Android camera image to a custom folder is blank -

greetings i'm trying develop activity in app user captures image using photographic camera , save custom folder in gallery here code i'm using

public class camerafragment extends fragment { private static final string tag = "testcma"; private static final int request_date = 0; private static final int request_photo = 1; private photographic camera mcamera; private surfaceview msurfaceview; private view mprogresscontainer; outputstream outstream = null; string filename; private camera.shuttercallback mshuttercallback = new camera.shuttercallback() { public void onshutter() { // display progress indicator mprogresscontainer.setvisibility(view.visible); } }; private camera.picturecallback mjpegcallback = new camera.picturecallback() { public void onpicturetaken(byte[] data, photographic camera camera) { // create filename filename = system.currenttimemillis() + ".jpg"; // save jpeg info disk fileoutputstream os = null; boolean success = true; seek { if (isdir()) { } /* * os = getactivity().openfileoutput(filename, * context.mode_private); */// os.write(data); } grab (exception e) { log.e(tag, "error writing file " + filename, e); success = false; } { seek { if (os != null) os.close(); } grab (exception e) { log.e(tag, "error closing file " + filename, e); success = false; } } if (success) { intent = new intent(); i.putextra(constants.extra_photo_filename, filename); getactivity().setresult(activity.result_ok, i); } else { getactivity().setresult(activity.result_canceled); } getactivity().finish(); getactivity().finish(); } private boolean isdir() { // todo auto-generated method stub // file file = createimagefile(); final string appdirectoryname = "xyz"; final file imageroot = new file( environment .getexternalstoragepublicdirectory(environment.directory_pictures), appdirectoryname); boolean x = imageroot.mkdirs(); x = imageroot.isdirectory(); outputstream fout = null; file imagepath = new file(imageroot.getabsolutepath()); file file = new file(imagepath, "ge_" + filename); // file = new // file(filename); seek { fout = new fileoutputstream(file); } grab (filenotfoundexception e) { e.printstacktrace(); } seek { fout.flush(); fout.close(); } grab (ioexception e) { e.printstacktrace(); } contentvalues values = new contentvalues(); values.put(images.media.title, "title"); values.put(images.media.description, "descriptoin"); values.put(images.media.date_taken, system.currenttimemillis()); values.put(images.imagecolumns.bucket_id, file.tostring() .tolowercase(locale.us).hashcode()); values.put(images.imagecolumns.bucket_display_name, file .getname().tolowercase(locale.us)); values.put("_data", file.getabsolutepath()); contentresolver cr = getactivity().getcontentresolver(); cr.insert(mediastore.images.media.external_content_uri, values); // final file image = new file(imageroot,filename ); homecoming false; } }; @override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { // todo auto-generated method stub view view = inflater.inflate(r.layout.fragment_pin_camera, container, false); mprogresscontainer = view .findviewbyid(r.id.pin_camera_progresscontainer); mprogresscontainer.setvisibility(view.invisible); imagebutton takepicbutton = (imagebutton) view .findviewbyid(r.id.camera_button); takepicbutton.setonclicklistener(new onclicklistener() { @override public void onclick(view v) { // todo auto-generated method stub if (mcamera != null) { mcamera.takepicture(mshuttercallback, null, mjpegcallback); } } }); msurfaceview = (surfaceview) view .findviewbyid(r.id.pin_camera_surfaceview); surfaceholder holder = msurfaceview.getholder(); holder.addcallback(new surfaceholder.callback() { public void surfacecreated(surfaceholder holder) { // tell photographic camera utilize surface preview area seek { if (mcamera != null) { mcamera.setpreviewdisplay(holder); } } grab (ioexception exception) { log.e(tag, "error setting preview display", exception); } } public void surfacedestroyed(surfaceholder holder) { // can no longer display on surface, stop // preview. if (mcamera != null) { mcamera.stoppreview(); } } public void surfacechanged(surfaceholder holder, int format, int w, int h) { if (mcamera == null) return; // surface has changed size; update photographic camera preview size camera.parameters parameters = mcamera.getparameters(); size s = getbestsupportedsize( parameters.getsupportedpreviewsizes(), w, h); // // reset // in // // next // section parameters.setpreviewsize(s.width, s.height); s = getbestsupportedsize(parameters.getsupportedpicturesizes(), w, h); parameters.setpicturesize(s.width, s.height); mcamera.setparameters(parameters); seek { mcamera.startpreview(); } grab (exception e) { log.e(tag, "could not start preview", e); mcamera.release(); mcamera = null; } } }); // homecoming view; } @targetapi(20) @override public void onresume() { super.onresume(); if (build.version.sdk_int >= build.version_codes.gingerbread) { mcamera = camera.open(0); } else { mcamera = camera.open(); } } @override public void onpause() { super.onpause(); if (mcamera != null) { mcamera.release(); mcamera = null; } } private size getbestsupportedsize(list<size> sizes, int width, int height) { size bestsize = sizes.get(0); int largestarea = bestsize.width * bestsize.height; (size s : sizes) { int area = s.width * s.height; if (area > largestarea) { bestsize = s; largestarea = area; } } homecoming bestsize; } private file createimagefile() throws ioexception { // create image file name string timestamp = system.currenttimemillis() + ""; filename = "jpeg_" + timestamp + "_"; string storagedir = environment .getexternalstoragepublicdirectory(environment.directory_pictures) + "/xyz"; file dir = new file(storagedir); dir.mkdir(); file image = new file(storagedir + "/" + filename + ".jpg"); // save file: path utilize action_view intents filename = image.getabsolutepath(); contentvalues values = new contentvalues(); values.put(images.media.title, "title"); values.put(images.media.description, "descriptoin"); values.put(images.media.date_taken, system.currenttimemillis()); values.put(images.imagecolumns.bucket_id, image.tostring().tolowercase(locale.us).hashcode()); values.put(images.imagecolumns.bucket_display_name, image.getname() .tolowercase(locale.us)); values.put("_data", image.getabsolutepath()); contentresolver cr = getactivity().getcontentresolver(); cr.insert(mediastore.images.media.external_content_uri, values); log.i(tag, "photo path = " + filename); homecoming image; } }

it captures image , creates folder , image file in image blank flat black, can help me that

you not saving jpeg buffer info onto file, creating directories within isdir , creating file there extension jpg fout = new fileoutputstream(file); not saving image contents

edit here how can save info file

string filename = system.currenttimemillis() + ".jpg"; file directory = new file(environment .getexternalstoragepublicdirectory(environment.directory_pictures), "xyz"); // save jpeg info disk boolean success = true; seek { if (!directory.isdirectory() && !directory.mkdirs()) { throw new ioexception("unable create directories path " + directory); } file file = new file(directory, "ge_" + filename); fileoutputstream fout = new fileoutputstream(file); fout.write(data); fout.close(); mediascannerconnection.scanfile(cameraactivity.this, new string[] {file.getabsolutepath()}, new string[]{"image/jpg"}, null); } grab (ioexception e) { e.printstacktrace(); }

android camera android-gallery

No comments:

Post a Comment