Tengo un problema con la entrada de la cámara en Android. Después de buscar en internet durante medio día, ya no voy más allá.La pantalla de la cámara no mantiene la relación de aspecto/parece sesgada
Wat Lo que quiero lograr en esta etapa es mostrar correctamente la entrada actual de la cámara. Nada más y nada menos por ahora. Cuando mantiene el dispositivo en modo horizontal, todo parece estar bien. Sin embargo, tan pronto como cambio el dispositivo a retrato, la pantalla parece estar escalada horizontalmente para que coincida con el ancho de la pantalla en el dispositivo.
Con el fin de aclarar esta cuestión un poco más, he adjuntado dos fotografías:
Parece que este problema también se produce con el ejemplo de la cámara los ejemplos API, pero no parece ocurrir cuando uso la aplicación de la cámara desde mi dispositivo. Entonces, claramente, algo más está sucediendo allí.
El código que estoy usando se basa en ejemplos que se pueden encontrar en internet y no tiene modificaciones:
class Preview extends SurfaceView implements SurfaceHolder.Callback {
SurfaceHolder mHolder;
Camera mCamera;
Preview(Context context) {
super(context);
mHolder = getHolder();
mHolder.addCallback(this);
mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}
public void surfaceCreated(SurfaceHolder holder) {
mCamera = Camera.open();
try {
mCamera.setPreviewDisplay(holder);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void surfaceDestroyed(SurfaceHolder holder) {
mCamera.stopPreview();
mCamera = null;
}
public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
Camera.Parameters parameters = mCamera.getParameters();
parameters.setPreviewSize(w, h);
mCamera.setParameters(parameters);
mCamera.startPreview();
}
}
Los ejemplos de la API de hacer uso de un método de "getOptimalPreviewSize (...)" que suena como el método que necesito, pero eso no cambia nada. Lo dejé aquí para ser lo más breve posible.
¿Falta algo obvio o es el comportamiento esperado?
Afortunadamente, alguien puede señalarme en la dirección correcta.
¡Gracias de antemano!
Paul
El efecto de distorsión se vuelva un poco perdido en las imágenes adjuntas. Pero en la imagen del paisaje, la pantalla de la computadora se ve con pantalla ancha. En la imagen vertical, parece una pantalla cuadrada. – PaulT
¿cuál es la resolución de vista previa que está configurando? – bluefalcon
La resolución depende del dispositivo. En este caso, es 1024 x 524 en la pestaña Galaxy. – PaulT