sperren Sie Ihre Kameraansicht in Android auf Querformat [duplizieren]
-
12-12-2019 - |
Frage
Ich möchte meine sperren kamera-Ansicht zu "Landschaft" Modus.Wenn ich in meiner App auf die einfache Schaltfläche klicke, öffnet sich die Kamera des Zeitgeräts und und das kamera sollte gesperrt sein zu "Querformat".Kann jemand die Lösung dieses Problems kennen?
Ich verwende diesen Code in "CaptureImageActivity.java" -Aktivität.Nach Ausführung dieser Aktivität wird also die Kamera meines Systems geöffnet.
btn1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent i=new Intent(android.provider.MediaStore. ACTION_IMAGE_CAPTURE);
i.putExtra(android.provider.MediaStore.EXTRA_SCREEN_ORIENTATION,ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
startActivityForResult(i,1000);
}
});
Und ich möchte diese Kameraansicht auf "Querformat" sperren.Und nach Lösung
<activity android:name=".CaptureImageActivity"
android:screenOrientation="landscape"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Nur die Aktivität "CaptureImageActivity" ist auf "Querformat" gesperrt.
Lösung
Fügen Sie dies Ihrer Aktivität in der Manifestdatei hinzu
android:screenOrientation="portrait"
Andere Tipps
siehe diesen Link, um die Ausrichtung Ihrer Kamera zu sperren, verwenden Sie setDisplayOrientation (int degrees)
dokumentation finden Sie unter folgendem Link :http://developer.android.com/reference/android/hardware/Camera.html#setDisplayOrientation%28int%29
weitere Informationen finden Sie in dieser Antwort :
Wie stelle ich die Ausrichtung der Android-Kamera richtig ein?
By using setCameraDisplayOrientation=
public static void setCameraDisplayOrientation(Activity activity,
int cameraId, android.hardware.Camera camera) {
android.hardware.Camera.CameraInfo info =
new android.hardware.Camera.CameraInfo();
android.hardware.Camera.getCameraInfo(cameraId, info);
int rotation = activity.getWindowManager().getDefaultDisplay()
.getRotation();
int degrees = 0;
switch (rotation) {
case Surface.ROTATION_0: degrees = 0; break;
case Surface.ROTATION_90: degrees = 90; break;
case Surface.ROTATION_180: degrees = 180; break;
case Surface.ROTATION_270: degrees = 270; break;
}
int result;
if (info.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
result = (info.orientation + degrees) % 360;
result = (360 - result) % 360; // compensate the mirror
} else { // back-facing
result = (info.orientation - degrees + 360) % 360;
}
camera.setDisplayOrientation(result);
}