我遇到了一些我可能只是忽略的问题.
我想从相机的表面预览中拍摄照片,并将其保存到sd_card.这几乎完美地工作.我为它分配了一个文件名,由于某种原因,它不使用文件名.
这就是我一直在尝试做的事情:
Button imagecapture = (Button) findViewById(R.id.imagecapture); imagecapture.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { String filename = null; ImageCaptureCallback iccb = null; try { filename = timeStampFormat.format(new Date()); ContentValues values = new ContentValues(); values.put(Media.TITLE, filename); values.put(Media.DESCRIPTION, "Image capture by camera"); Uri uri = getContentResolver().insert(Media.EXTERNAL_CONTENT_URI, values); iccb = new ImageCaptureCallback(getContentResolver().openOutputStream(uri)); } catch (Exception ex) { ex.printStackTrace(); Log.e(getClass().getSimpleName(), ex.getMessage(), ex); } camera.takePicture(mShutterCallback, mPictureCallbackRaw, iccb); com.froogloid.android.gspot.Park.imageFileName = filename; } });
它不会使用文件名(即我要求的时间/日期戳.)
这是通过ImageCaptureCallback类实现PictureCallback,并覆盖通过文件输出流写入文件的onPictureTaken来解决的.您所要做的就是将fileoutput流更改为您想要的文件名.