Ayuda natural de la orientación del sensor de Android
Estoy tratando de lograr la manera recomendada de Reto Meier para evitar que la orientación de la pantalla cambie. Las diapositivas de su charla durante Google IO (ver # 23) se pueden encontrar en Android Protips: Dónde descargar las diapositivas y los fragmentos de código .
He avanzado a través del código y de fijar los valores, pero la orientación de la pantalla todavía cambia. FYI, registro este oyente en la aplicación.
- Cuando cambio la orientación de retrato a paisaje mi resultado calculado está desapareciendo. Cómo resolverlo?
- Android onConfigurationChanged () no se llama en Actividad
- Las imágenes tomadas con ACTION_IMAGE_CAPTURE siempre devuelven 1 para ExifInterface.TAG_ORIENTATION en algunos dispositivos más nuevos
- Servicio de Android> Actividad> Fragmento con ViewPager
- El diálogo no debe descartarse cuando cambia la orientación de la pantalla
Aquí está mi código:
final SensorManager sm = (SensorManager) getSystemService(Context.SENSOR_SERVICE); sm.registerListener( new SensorEventListener() { @Override public void onSensorChanged(SensorEvent sensorEvent) { if (sensorEvent.sensor.getType() == Sensor.TYPE_ORIENTATION) { final WindowManager wm = (WindowManager) getApplicationContext() .getSystemService(Context.WINDOW_SERVICE); final Display display = wm.getDefaultDisplay(); int x = SensorManager.AXIS_X; int y = SensorManager.AXIS_Y; switch (display.getRotation()) { case Surface.ROTATION_90: x = SensorManager.AXIS_Y; y = SensorManager.AXIS_MINUS_X; break; case Surface.ROTATION_180: y = SensorManager.AXIS_MINUS_Y; break; case Surface.ROTATION_270: x = SensorManager.AXIS_MINUS_Y; y = SensorManager.AXIS_MINUS_X; break; case Surface.ROTATION_0: default: break; } SensorManager.remapCoordinateSystem(sensorEvent.values, x, y, new float[] {}); } } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { } }, sm.getDefaultSensor(Sensor.TYPE_ORIENTATION), SensorManager.SENSOR_DELAY_NORMAL);
- Mono para Android - Todas las actividades en orientación vertical
- ¿Cómo conservar la instancia de fragmento de fragmento de reproducción de vídeo después de un cambio de orientación?
- ¿Cómo puedo asegurar la correcta orientación de reproducción del video grabado?
- Orientación de la superficie de la cámara con el androide
- Android PhoneGap obtener guiñada, tono, rollo, relativo a las coordenadas de tierra
- Valores de sensor de orientación incoherentes en Android para azimut / guiñada y rollo
- GetRotationMatrix y tutorial de getOrientation
- Uso de giroscopio Android en lugar de acelerómetro. Encontré un montón de fragmentos, pero no hay código completo
Las 30 líneas de código que actualmente no funcionan se pueden reemplazar con algunos valores XML en su archivo AndroidManifest.xml
.
Todos hemos visto
<activity android:name=".YourActivity" android:screenOrientation="portrait" ></activity>
Y todos sabemos que no funciona bien con las tabletas que tienen una orientación por defecto de paisaje. Pero, ¿cuántos de ustedes han visto esto?
<activity android:name=".YourActivity" android:screenOrientation="nosensor" ></activity>
Básicamente, hace que la orientación del dispositivo no responda al sensor. Por lo tanto, si el valor predeterminado es horizontal o vertical, no cambiará. Lo he probado en mi Droid X y en un Xoom y funciona como me lo esperaba.
Espero que esto ayude a otros.
- ¿Cómo encontrar el uso de la variable en Android Studio? (Como Ctrl + Shift + G en Eclipse)
- ¿Puedo capturar mensajes de LogCat al usar el teléfono normalmente (no conectado al PC)?