Android - Take picture without preview -
i trying take picture without preview, when application starts running , after save picture in new folder - "pictures123", in root folder. please tell me what's wrong in code?
@override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); file directory = new file(environment.getexternalstoragedirectory() + "/pictures123/"); if (!directory.exists()) { directory.mkdir(); } camera camera = camera.open(0); camera.parameters parameters = camera.getparameters(); parameters.setpictureformat(imageformat.jpeg); camera.setparameters(parameters); surfaceview mview = new surfaceview(getbasecontext()); camera.setpreviewdisplay(mview.getholder()); camera.setpreviewdisplay(null); camera.startpreview(); camera.takepicture(null,null,photocallback); camera.stoppreview(); } camera.picturecallback photocallback=new camera.picturecallback() { public void onpicturetaken(byte[] data, camera camera) { try { string root = environment.getexternalstoragedirectory().tostring(); file mydir = new file(root + "/pictures123"); file file = new file (mydir, "pic1.jpeg"); fileoutputstream out = new fileoutputstream(file); out.write(data); out.flush(); out.close(); } catch (filenotfoundexception e) { e.printstacktrace(); } catch (ioexception e) { e.printstacktrace(); } catch (exception e) { e.printstacktrace(); } finish(); } }; permissions:
<uses-permission android:name="android.permission.write_external_storage"/> <uses-permission android:name="android.permission.read_external_storage"/> <uses-permission android:name="android.permission.camera" /> <uses-feature android:name="android.hardware.camera" />
you can't take picture without preview, don't have show preview on screen. can direct output surfacetexture instead (api 11+).
see this answer more details.
Comments
Post a Comment