Я создаю приложение камеры, используя Camera 2 API, мой код для предварительного просмотра работает хорошо, он также выбирает изображения из предварительного просмотра и сохраняет их в каталоге.
Моя проблема:
застревает во время съемки и сохранения изображения, после сохранения изображения камера работает как обычно.
Это мой код, который берет изображение для предварительного просмотра и сохраняет его:
onTakePhotoButtonClicked ():
public void onTakePhotoButtonClicked() {
FileOutputStream outputPhoto = null;
try {
outputPhoto = new FileOutputStream(createImgFile());
preview.getBitmap()
.compress(Bitmap.CompressFormat.PNG, 100, outputPhoto);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (outputPhoto != null) {
outputPhoto.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
createImgFile ():
private File createImgFile() throws IOException{
String TimeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
String prepend = "IMG_"+TimeStamp+"_";
File Imgfile = File.createTempFile(prepend,".jpg",mPictureFolder);
mPictureFileName = Imgfile.getAbsolutePath();
Toast.makeText(getApplicationContext(),mPictureFileName.toString(),Toast.LENGTH_SHORT).show();
return Imgfile;
}
OnCreate ():
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.content_mycamera_experiment);
preview = (TextureView) findViewById(R.id.preview);
click = (ImageButton) findViewById(R.id.click);
createImgFolder();
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA,
Manifest.permission.WRITE_EXTERNAL_STORAGE},REQUEST_WRITE_EXTERNAL_STORAGE_PERMISSION_RESULT );
click.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onTakePhotoButtonClicked();
}
});
}
Есть ли способ сделать фото быстрее и быстрее вернуться к камере?
Любая коррекция, лучший метод?