Ich bin für ein Android Tablet codieren und ich möchte meine App die Hochformatansicht der surfaceView
Kameravorschau verwenden. Es ist Landschaft standardmäßig und ich versuchte, den folgenden Code in das Hochformat zu drehen:Wie kann ich die Android-Kamera in der Oberflächenansicht in Hochformat ändern?
public void surfaceCreated(SurfaceHolder holder){
// The Surface has been created, acquire the camera and tell it where to draw.
mCamera = Camera.open();
Parameters params = mCamera.getParameters();
// If we aren't landscape (the default), tell the camera we want portrait mode
if (this.getResources().getConfiguration().orientation != Configuration.ORIENTATION_LANDSCAPE){
params.set("orientation", "portrait"); // "landscape"
// And Rotate the final picture if possible
// This works on 2.0 and higher only
//params.setRotation(90);
// Use reflection to see if it exists and to call it so you can support older versions
try {
Method rotateSet = Camera.Parameters.class.getMethod("setRotation", new Class[] { Integer.TYPE });
Object arguments[] = new Object[] { new Integer(270) };
rotateSet.invoke(params, arguments);
} catch (NoSuchMethodException nsme) {
// Older Device
Log.v("CameraView","No Set Rotation");
} catch (IllegalArgumentException e) {
Log.v("CameraView","Exception IllegalArgument");
} catch (IllegalAccessException e) {
Log.v("CameraView","Illegal Access Exception");
} catch (InvocationTargetException e) {
Log.v("CameraView","Invocation Target Exception");
}
}
mCamera.setParameters(params);
try{
mCamera.setPreviewDisplay(holder);
} catch (IOException exception) {
mCamera.release();
mCamera = null;
}
}
Aber es funktioniert nicht. Könnte jemand das bitte reparieren?
wurde auch mit Objektargumenten versucht [] = new Object [] {new Integer (90)}; aber ich konnte es immer noch nicht reparieren. –
Da Sie die Oberflächenansicht zur Arbeit haben, können Sie mir ein Beispiel geben. Ich muss von einer IP-Kamera zu meinem Android streamen und ich möchte Oberflächenansicht verwenden – Lily