bloccare la visuale della telecamera in modalità orizzontale in android [duplica]
-
12-12-2019 - |
Domanda
Voglio bloccare la mia visualizzazione della fotocamera per "Paesaggio"modalità.Quando si fa clic sul pulsante nella mia app, che ora fotocamera del dispositivo per aprire e e che la fotocamera dovrebbe essere bloccato per "Modalità paesaggio".Qualcuno conosce la soluzione di questo problema?
Sto usando questo codice all'interno di "CaptureImageActivity.java" attività.Così, dopo l'esecuzione di questa attività il mio sistema fotocamera si apre.
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);
}
});
E voglio bloccare la macchina in vista della "Modalità Orizzontale".E come per ogni soluzione
<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>
Solo "CaptureImageActivity" attività è bloccata "Modalità Orizzontale".
Soluzione
Aggiungi questo nel tuo attività all'interno del file manifest
android:screenOrientation="portrait"
Altri suggerimenti
vedi questo link per bloccare il vostro orientamento della fotocamera,utilizzare setDisplayOrientation (int degrees)
la documentazione può essere trovato sul seguente link :http://developer.android.com/reference/android/hardware/Camera.html#setDisplayOrientation%28int%29
per ulteriori dettagli, vedere questa risposta :
Come impostare Android orientamento della fotocamera correttamente?
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);
}