Cámara Android2 Tamaños de salida
He probado la nueva API de Camera2 en Android Lollipop. Quiero obtener el tamaño de vista previa compatible:
StreamConfigurationMap streamConfigurationMap = cameraCharacteristics.get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP); Size[] sizes = streamConfigurationMap.getOutputSizes(SurfaceTexture.class);
Y el tamaño máximo de vista previa es 1440x1080px en Samsung Galaxy Tab S que tiene una resolución de 2560x1600px. Así que mi previewSize es 1440x1080px y el tamaño de la superficie TextureView es de 2560x1600px por lo que la imagen está distorsionada.
- Ráfaga de captura de cámara de Android2 es demasiado lento
- Elementos compartidos de Android con Picasso
- Native crash en /system/lib/libart.so en lollipop android 5.0.1 samsung
- Canvas.drawTextOnPath (...) no funciona en Lollipop
- Estilizar los botones de material en Android v21
He probado la antigua cámara API que está obsoleto.
Camera.Parameters parameters = camera.getParameters(); List<Camera.Size> sizes = parameters.getSupportedPictureSizes();
Y el código anterior devuelve 32 combinaciones varius de tamaño de vista previa tales como: 2560x1920
, 1920x1080
, 1080x1920
, 2560x2560
etc En ese caso, puedo elegir el tamaño óptimo y mostrar la imagen correcta.
No sé cómo forzar a la nueva API para obtener un tamaño óptimo. Sé que la solución es cambiar el tamaño de la vista que muestra la vista previa, pero la cámara incorporada funciona en modo de pantalla completa correctamente. Gracias de antemano por todas las sugerencias!
- Cómo crear efecto de rizo en un diseño sencillo
- Convertir la cámara Android api YUV_420_888 a RGB
- Ondulación y fondo sin límites de Android
- Android: ¿Cómo puedo comprobar si un dispositivo tiene funciones de api de Camera2 implementadas o no?
- Establecer el efecto de ondulación en la vista de imagen
- ¿Cómo activar el efecto de rizo en Android Lollipop, en una ubicación específica dentro de la vista, sin desencadenar eventos de touch?
- ¿Cómo implementar el efecto ripple en Android KeyboardView?
- Cámara Android2 getPreviewFrame
reemplazar
Size[] sizes = streamConfigurationMap.getOutputSizes(SurfaceTexture.class);
a
Size[] sizes = streamConfigurationMap.getOutputSizes(ImageFormat.JPEG)
private static Size chooseOptimalSize(Size[] choices, int width, int height, Size aspectRatio) { // Collect the supported resolutions that are at least as big as the preview Surface List<Size> bigEnough = new ArrayList<>(); int w = aspectRatio.getWidth(); int h = aspectRatio.getHeight(); for (Size option : choices) { if (option.getHeight() == option.getWidth() * h / w && option.getWidth() >= width && option.getHeight() >= height) { bigEnough.add(option); } } // Pick the smallest of those, assuming we found any if (bigEnough.size() > 0) { Size size = Collections.min(bigEnough, new CompareSizesByArea()); cameraHeight = size.getHeight(); cameraWidth = size.getWidth(); return Collections.min(bigEnough, new CompareSizesByArea()); } else { Log.e(TAG, "Couldn't find any suitable preview size"); return choices[0]; } }
- Manejo de la orientación de la pantalla del androide para spinner
- Cómo mantener el cajón deslizante de la parte superior del teclado virtual