Red de Respuestas Legales - Derecho empresarial - ¿Cómo implementar la tecnología de cambio de pantalla vertical y horizontal de la aplicación de cómics de Android?

¿Cómo implementar la tecnología de cambio de pantalla vertical y horizontal de la aplicación de cómics de Android?

, deshabilite el cambio entre pantallas horizontales y verticales.

El cambio de pantalla vertical de Android es muy común en el desarrollo de teléfonos móviles. Para evitar problemas innecesarios causados ​​por el cambio de pantalla vertical, muchos programas generalmente prohíben el cambio de pantalla vertical.

Esto se logra estableciendo el valor del atributo android:screenOrientation en la actividad de AndroidManifest.xml

Por ejemplo, la siguiente configuración

android:screenOrientation = "Retrato "

No importa cómo cambie el teléfono, las actividades con este atributo se mostrarán verticalmente.

Android:screen orientación = "horizontal", esta es una visualización horizontal.

Las modificaciones anteriores también se pueden configurar en código Java mediante un código similar al siguiente.

setrequesteorientation(activity info.Screen_Orientation_Landscape)

Además, cada cambio de pantalla en Android reiniciará la actividad, por lo que debes guardar el estado actual de la actividad antes de que se destruya y cargue. la configuración cuando se vuelva a crear la actividad, para que el juego en curso no se reinicie automáticamente.

2. Cambiar entre pantallas horizontales y verticales

Si desea que el software cambie entre pantallas horizontales y verticales, es posible que necesite un diseño diferente debido a la altura y el ancho de la pantalla horizontal. y pantallas verticales se producirán cambios. Puede cambiar los diseños de las dos maneras siguientes:

1) Cree directorios de diseño-land y diseño-puerto en el directorio res, y los nombres de los archivos de diseño correspondientes permanecerán sin cambios, como main.xml.layout- land Es un diseño de pantalla horizontal, Diseño, diseño-puerto es un diseño de pantalla vertical, y el resto no es necesario. Cuando las pantallas horizontal y vertical cambian, el programa llama al método onCreate de la actividad para cargar el diseño correspondiente.

2) Si los recursos de diseño no están configurados como se indica arriba, puede usar el código Java para determinar si la pantalla actual es horizontal o vertical y luego cargar el archivo de diseño xml correspondiente. Porque cuando la pantalla se vuelve horizontal, el sistema volverá a llamar al método onCreate de la actividad actual. Puede colocar el siguiente método en onCreate para verificar la orientación actual y luego puede dejar que setContentView cargue un xml de diseño diferente.

if(this.getResources().getConfiguration().orientation==configuration.orientation_landscape)

{

Log.i("info " , " paisaje"); //Pantalla horizontal

} else if(this.getResources().getConfiguration().orientation==configuration.orientation_portrait)

{

Log.i("info", "portrait"); //Pantalla vertical

}

En tercer lugar, intercepte los cambios de pantalla horizontal y vertical a través de onConfigurationChanged.

Según la segunda acción, la actividad llamará a onPause->onStop->onde story->onCreate->onStart->OnResume, para cuyo contenido y Almacenamiento y lectura de datos, de lo contrario, el contenido antes del cambio de pantalla desaparecerá. Muchas veces, estos resultados hacen que el proceso sea engorroso. Para este propósito, Android proporciona la configuración del atributo android:configChanges en el manifiesto para que la actividad no continúe con el proceso de reconstrucción anterior. Configure la actividad: Android: cambios de configuración = "teclado oculto | orientación" en Mainfest.xml del proyecto de Android. Después de cambiar entre pantallas horizontales y verticales, la función OnCreat no se ejecutará, pero se llamará a onConfigurationChanged(), para que se puedan controlar las pantallas horizontales y verticales. Los usuarios pueden obtener los parámetros de pantalla actuales en la función OnConfigurationChanged (configurar nueva configuración) de la actividad o vista. En cuanto a su secuencia de llamada, es similar a la secuencia de transmisión del tiempo táctil, pero no tiene el concepto de consumir eventos y llamará a cada función onConfigurationChanged en secuencia.

Necesitas anular el método onConfigurationChanged de la actividad.

El método de implementación es el siguiente, no hay mucho contenido:

@override

public void onConfigurationChanged(configuración nueva configuración){

super onconfigurationchanged(nueva configuración). ;

if (this.getResources().getConfiguration().orientation==configuration.direction_horizontal){

//Simplemente no hagas nada con la tierra

} else if (this.getResources().getConfiguration().orientation==configuration.ORIENTATION_PORTRAIT) {

//Simplemente no hagas nada por el puerto

}

}

Cabe señalar que la función onConfigurationChanged solo puede obtener los parámetros después de cambiar entre pantallas horizontales y verticales, pero el nuevo diseño y la información de tamaño y posición del control no se pueden obtener en esta función. Si desea manejar información de tamaño y posición, debe llamarla de forma asincrónica mediante un mensaje o retrasarla.

Cuarto, prohibir completamente voltear

Por supuesto, si desea prohibir completamente voltear, puede establecer el atributo de android:screenOrientation en nosensor, para que pueda ignorar el problema causado. por detección de gravedad. Pero no funciona en el simulador, pero es correcto en la máquina real.

Aquí tienes un poco de conocimiento. En el emulador de Android, la tecla de acceso directo "Ctrl+F11/F12" puede cambiar de pantalla.

Quinto, conversión adaptativa

Si desea que comience en la pantalla horizontal, se mostrará en la pantalla horizontal, y si se muestra en la pantalla vertical, se mostrará en pantalla vertical, y luego, cuando el teléfono cambia entre pantalla horizontal y pantalla vertical, ya no se puede utilizar. ¿Cómo resolver este problema?

Primero: agregar en Mainfest.xml.

Android:orientación de pantalla = " sensor " Android: cambios de configuración = " orientación | teclado oculto "

Estas dos propiedades.