java - My function cant save the photo in the phone gallery. he save the photo in DCIM -
this question has answer here:
here function save photo. want put picture in gallery.
public file getoutputmediafile() { file dir2 = new file(environment.getexternalstoragepublicdirectory(environment.directory_pictures), "dentafy"); string timestamp = new simpledateformat("yymmdd_hhmmss", locale.getdefault()).format(new date()); string dir = environment.getexternalstoragepublicdirectory(environment.directory_pictures).tostring(); string filename = file.separator + "2img_" + timestamp + ".jpg"; log.d("getoutmediafile", filename); file c = new file(dir2.getpath(), filename); filepath = filename; picturepath(); return c; } public string picturepath( ) { return filepath; }
looking @ log (i removed irrelevant lines):
06-28 13:17:12.165 17307-17307/com.example.newrosoft1.dentafy i/viewrootimpl: viewroot's touch event : action_down 06-28 13:17:12.195 17307-17307/com.example.newrosoft1.dentafy d/dalvikvm: gc_for_alloc freed 10802k, 2% free 58270k/59144k, paused 30ms, total 30ms 06-28 13:44:21.398 24638-24638/com.example.newrosoft1.dentafy d/activity: performcreate call debug elastic valuetrue 06-28 13:44:21.458 24638-24638/com.example.newrosoft1.dentafy i/timeline: timeline: activity_launch_request id:com.example.newrosoft1.dentafy time:156085873 06-28 13:44:22.619 24638-24638/com.example.newrosoft1.dentafy d/valoare este %@: file:///file%3a/storage/emulated/0/android/data/com.example.newrosoft1.dentafy/files/pictures/jpeg_20160628_134421_558130986.jpg 06-28 13:44:22.619 24638-24638/com.example.newrosoft1.dentafy d/valoare 2 este %@: file:///file%3a/storage/emulated/0/android/data/com.example.newrosoft1.dentafy/files/pictures/jpeg_20160628_134421_558130986.jpg 06-28 13:44:23.140 24638-24638/com.example.newrosoft1.dentafy i/art: alloc sticky concurrent mark sweep gc freed 198(22kb) allocspace objects, 0(0b) los objects, 6% free, 107mb/115mb, paused 732us total 10.467ms 06-28 13:44:23.160 24638-24638/com.example.newrosoft1.dentafy i/art: alloc partial concurrent mark sweep gc freed 1281(108kb) allocspace objects, 1(16kb) los objects, 12% free, 107mb/123mb, paused 732us total 16.082ms 06-28 13:44:23.190 24638-24638/com.example.newrosoft1.dentafy i/art: alloc concurrent mark sweep gc freed 16(12kb) allocspace objects, 0(0b) los objects, 12% free, 107mb/123mb, paused 732us total 30.761ms 06-28 13:44:23.190 24638-24638/com.example.newrosoft1.dentafy i/art: forcing collection of softreferences 36mb allocation 06-28 13:44:23.210 24638-24638/com.example.newrosoft1.dentafy i/art: alloc concurrent mark sweep gc freed 11(344b) allocspace objects, 0(0b) los objects, 12% free, 107mb/123mb, paused 610us total 22.705ms 06-28 13:44:23.210 24638-24638/com.example.newrosoft1.dentafy e/art: throwing outofmemoryerror "failed allocate 38340876 byte allocation 16777120 free bytes , 20mb until oom" 06-28 13:44:23.210 24638-24638/com.example.newrosoft1.dentafy d/skia: --- decoder->decode returned false 06-28 13:44:23.210 24638-24638/com.example.newrosoft1.dentafy d/androidruntime: shutting down vm 06-28 13:44:23.220 24638-24638/com.example.newrosoft1.dentafy e/androidruntime: fatal exception: main process: com.example.newrosoft1.dentafy, pid: 24638 java.lang.outofmemoryerror: failed allocate 38340876 byte allocation 16777120 free bytes , 20mb until oom @ dalvik.system.vmruntime.newnonmovablearray(native method) @ android.graphics.bitmapfactory.nativedecodestream(native method) @ android.graphics.bitmapfactory.decodestreaminternal(bitmapfactory.java:752) @ android.graphics.bitmapfactory.decodestream(bitmapfactory.java:728) @ android.graphics.bitmapfactory.decodefile(bitmapfactory.java:477) @ android.graphics.bitmapfactory.decodefile(bitmapfactory.java:515) @ com.example.newrosoft1.dentafy.pictureconfirmation.oncreate(pictureconfirmation.java:411) @ android.app.activity.performcreate(activity.java:6289) @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1119) @ android.app.activitythread.performlaunchactivity(activitythread.java:2655) @ android.app.activitythread.handlelaunchactivity(activitythread.java:2767) @ android.app.activitythread.access$900(activitythread.java:177) @ android.app.activitythread$h.handlemessage(activitythread.java:1449) @ android.os.handler.dispatchmessage(handler.java:102) @ android.os.looper.loop(looper.java:145) @ android.app.activitythread.main(activitythread.java:5951) @ java.lang.reflect.method.invoke(native method) @ java.lang.reflect.method.invoke(method.java:372) @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:1400) @ com.android.internal.os.zygoteinit.main(zygoteinit.java:1195)
the difference between front- , rear- cameras picture taken latter larger, , impossible convert @ full scale bitmap display in imageview: cross app memory limit. can increase amount of memory allowed app, better - reduce size of bitmap. here have 2 alternatives: set picture size rear camera smaller (preferably fit size of image view), or scale bitmap down in decodefile()
.
Comments
Post a Comment