с искаженным изображением при смешивании представления из OpenGL и камеры Android, чтобы получить изображение как при использовании метода takepicture. Я проверил и обнаружил, что для изображения камеры установлено значение 640X480, а представление openGL и предварительный просмотр камеры установлены на 1280x720.
поэтому я установил размер изображения камеры 1280x720, и результат был идеальным. однако я не могу установить размер в коде, потому что каждое Android-устройство будет отличаться, и каждое устройство должны быть выбраны как для размера предварительного просмотра, так и для размера изображения из списка поддерживаемых размеров.
Каков наилучший способ сделать это, учитывая, что здесь есть три переменные: размер экрана макета активности, размер предварительного просмотра камеры и размер изображения.
лучше ли использовать match_parent или fitXY для размера FrameLayout и работать только с двумя переменными, размером предварительного просмотра и размером изображения?
обратите внимание, что несколько комбинаций ширины и высоты в размерах предварительного просмотра и размерах изображения одинаковы. например, 1280 x 720 существует как в предварительном просмотре, так и в изображении, всегда ли так, что будут совпадения в обоих размерах?
List<Size> previewSizes = mCamera.getParameters().getSupportedPreviewSizes();
List<Size> imageSizes = mCamera.getParameters().getSupportedPictureSizes();
// layout in the activity that the cameraView will placed in
int layoutWidth = frameLayout.getWidth();
int layoutHeight = frameLayout.getHeight();
например, на одном Android-планшете после измерения, это результаты для трех используемых переменных
размер представления макетаГруппа в активности в результате измерения
1280 x 736
поддерживаемые размеры изображений
320 x 240
640 x 480
1024 x 768
1280 x 720 << best size in my example to use
1280 x 768
1280 x 920
1600 x 1200
2048 x 1536
2560 x 1440
2560 x 1536
2560 x 1920 << native resolution of hardware camera
поддерживаемые размеры предварительного просмотра
176 x 144
320 x 240
352 x 288
480 x 320
480 x 368
640 x 480
800 x 480
800 x 600
864 x 480
864 x 576
960 x 540
1280 x 720 << best size in my example to use
1280 x 768
1280 x 960