Android: Получение имени файла от камеры?

Я столкнулся с проблемой с чем-то, что я, вероятно, просто пропускаю.

Я хочу сделать снимок от поверхностного предварительного просмотра камеры и сохранить его к sd_card. Это работает ПОЧТИ прекрасное. Я присвоил ему имя файла, но это не использует filename.

Это - то, что я пытался сделать:

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;
    }
});

Это не будет использовать имя файла (т.е. метка времени и даты, к которой я спрашиваю это.)

7
задан Zain Aftab 5 July 2019 в 08:14
поделиться

3 ответа

Это было разрешено путем реализации PictureCallback через класс ImageCaptureCallback и Переопределения onPictureTaken, где файл писался через поток вывода файла. Все, что необходимо было сделать, было изменить fileoutput поток на имя файла, которое Вы хотите.

6
ответ дан 7 December 2019 в 10:09
поделиться

это не сохраняет образ? в моем приложении этот код сохраняет образ, возможно, Вы используете переменную "filaname" для получения изображения от sdcard? использовать изображение от sdcard лучше для сохранения в переменной, для examople, "fileUri" значение uri.toString, конец получают из sdcard файла с uri Uri.parse(fileUri)..

0
ответ дан 7 December 2019 в 10:09
поделиться

Надежда, которой это помогает / Вероятно, не лучший способ пойти об этом, но он работал.Вот:
Это - обратный вызов изображения захвата изображения камерой.

public class ImageCaptureCallback implements PictureCallback {

    private OutputStream filoutputStream;
    public ImageCaptureCallback(OutputStream filoutputStream) {
        this.filoutputStream = filoutputStream;
    }

    @Override
    public void onPictureTaken(byte[] data, Camera camera) {

        try {
            Log.v(getClass().getSimpleName(), "onPictureTaken=" + data + " length = " + data.length);
            FileOutputStream buf = new FileOutputStream("/sdcard/dcim/Camera/" + CameraActivity.filename + ".jpg");
            buf.write(data);
            buf.flush();
            buf.close();
            // filoutputStream.write(data);
            filoutputStream.flush();
            filoutputStream.close();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
}
0
ответ дан 7 December 2019 в 10:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: