Ich möchte die Kamerabildausrichtung im gesperrten Hochformatmodus finden, also benutze ich die Kamera in meiner Fragmentklasse und ich habe meine Bildschirmausrichtung bereits als Hochformat eingestellt, aber das Problem ist, wenn ich meine Kamera auswende Portrait to Landscape wird geändert und ich muss die Capture-Taste nur dann aktivieren, wenn sich die Kamera im Hochformat befindet. Kann mir jemand helfen, die Orientierungsänderungen im Hochformat zu bekommen? Unten ist mein Code:Wie erkenne ich meine Bildschirmausrichtung im Portrait gesperrt Bildschirm in Android?
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
//do your stuff with the button
}
}
Wenn Sie Ihre Aktivitäten wollen nicht dann
android:configChanges="orientation|keyboardHidden|screenSize"
Wenn Sie während der Orientierung neu erstellt werden:
getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
sensorManager.registerListener(new SensorEventListener() {
int orientation=-1;;
@Override
public void onSensorChanged(SensorEvent event) {
if (event.values[1] < 6.5 && event.values[1] > -6.5) {
if (orientation!=1) {
Log.d("Sensor", "Landscape");
}
orientation = 1;
} else {
if (orientation!=0) {
Log.d("Sensor", "Portrait");
}
orientation = 0;
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
}, sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_GAME);
if (orientation == 0) {
// capture button visisble
} else {
// invisible
}
http://stackoverflow.com/a/5726776/2247689 –
einen Blick auf diese nehmen: http://stackoverflow.com/ a/41104983/2267723 diese Lösung mit SensorManager. –