Problema con la orientación de la pantalla de Android
Estoy trabajando en las aplicaciones de fondo de pantalla en android y necesito manejar correctamente los cambios de orientación de la pantalla.
Actualmente utilizo onConfigurationChanged
para este propósito (en este método necesito cambiar coordenadas de mis elementos de pantalla de LWP. Utilizo andengine
). Todo funciona bien en los emuladores y mis teléfonos de prueba, pero algunos de mis clientes con Samsung Galaxy Note2 (t03g) , LG emoción (LGE LG-P925) informa de los problemas con el trabajo de la aplicación incorrecta durante el cambio de orientaciones de pantalla.
- Obtener el número de homescreens sin llamar a onoffsetschanged (para el fondo de pantalla)?
- Elegir el fondo para Live Wallpaper
- Cómo cargar recursos o activos en GLWallpaper service
- Establecer Live Wallpaper en la pantalla de bloqueo de Android
- Uso de Google MapView v2 en Live Wallpaper
No tengo estos teléfonos a mano, pero puedo suponer que el problema está relacionado con que onConfigurationChanged
no se haya llamado.
¿Es correcto usar el método onConfigurationChanged
? Tal vez necesito usar onSurfaceChanges
o algo así? ¿Podría sugerirme la manera correcta de resolver este problema?
Alos, he añadido android:configChanges="keyboardHidden|orientation"
en mi AndroidManifest.xml
:
<activity android:name=".WallpaperSettings" android:configChanges="keyboardHidden|orientation" android:exported="true" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.PREFERENCE" /> </intent-filter> </activity>
- Cómo acelerar la carga / compilación de shader en Android
- Android Live Wallpaper Tocar la jerarquía de eventos
- Error 1 libavcodec.so Formato de archivo no reconocido Android GL Live Wallpaper
- Animación de diapositivas de Android en vivo
- Cómo cargar imágenes como fondo en LibGDx?
- Cómo configurar el icono de Android Live Wallpaper (también conocido como "thumbnail")
- "Arreglando" un fondo de pantalla en vivo en modo vertical
- ¿Dónde debo inicializar los recursos para un Android Live Wallpaper
En mi fondo de pantalla en vivo, que maneja los cambios de orientación, utilizo el método onConfigurationChange()
para comprobar los cambios de orientación, pero no tengo ninguna experiencia directa con los 2 teléfonos, aunque nunca he recibido ninguna queja sobre ellos. Mi método se parece a lo siguiente:
@Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); // Checks the orientation of the screen if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { rotated = true; } else { rotated = false; } }
Y en el método draw()
, compruebo el booleano rotated
. Hay controles adicionales en onSurfaceChanged()
para corregir los cambios de resolución cuando cambia la orientación.
No tengo android:configChanges="keyboardHidden|orientation"
en mi archivo de manifiesto en absoluto.
android:configChanges="orientation|screenSize"
Precaución: A partir de Android 3.2 (API nivel 13), el "tamaño de pantalla" también cambia cuando el dispositivo cambia entre orientación vertical y horizontal. Por lo tanto, si desea evitar que el tiempo de ejecución se reinicie debido al cambio de orientación al desarrollar para API de nivel 13 o superior (como declarado por los atributos minSdkVersion y targetSdkVersion), debe incluir el valor "screenSize" además del valor "orientation". Es decir, debes decalar android: configChanges = "orientation | screenSize". Sin embargo, si su aplicación se orienta al nivel 12 de la API o inferior, su actividad siempre se encarga de este cambio de configuración por sí mismo (este cambio de configuración no reinicia su actividad, incluso cuando se ejecuta en un dispositivo Android 3.2 o superior).
- OpenCV obtiene píxeles negros dentro del límite del contorno
- ¿Cuándo expira el status registeredOnServer en Android GCM?