Я думаю, что моя проблема похожа на ссылку ниже, но я использую свой собственный customSurfaceview, который связан с Canvas. Руководство высоко ценится:)
Захваченное изображение отличается от Preview Camera2 Api
Результат
Результат предварительного просмотра камеры, как и ожидалось
Результат предварительного просмотра растрового изображения не какожидается
Захват изображения
@Override
public void onPictureTaken(byte[] bytes, Camera camera) {
saveImage(bytes);
}
private void saveImage(byte[] bytes) {
Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
CanvasToBitmap(bitmap);
}
Преобразование холста в растровое изображение
private void CanvasToBitmap(Bitmap imageBitmap) {
Bitmap workingBitmap = Bitmap.createBitmap(imageBitmap);
Bitmap mutableBitmap = workingBitmap.copy(Bitmap.Config.ARGB_8888, true);
Canvas canvas = new Canvas(mutableBitmap);
Paint p = new Paint();
drawCard(canvas, p);
open(mutableBitmap);
}
public void open(Bitmap bitmap) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
LayoutInflater inflater = getLayoutInflater();
View dialogLayout = inflater.inflate(R.layout.alert_dialog_with_imgview, null);
final ImageView imageView = dialogLayout.findViewById(R.id.alr_img);
imageView.setImageBitmap(bitmap);
builder.setPositiveButton("OK", null);
builder.setView(dialogLayout);
builder.show();
}