¿Cómo cambiar la orientación de la pantalla mediante programación usando un botón en Android?

En general, la orientación de la pantalla de cualquier aplicación tiene un estilo vertical. Pero cuando se trata de juegos o cualquier otro servicio multimedia, como ver un video, la orientación de la pantalla debe cambiar funcionalmente de vertical a horizontal o viceversa cuando no se requiere la funcionalidad. Por lo tanto, un desarrollador tiene que escribir explícitamente un programa en el que la orientación cambie sin que el usuario lo invoque tradicionalmente activando y desactivando la rotación/rotación automática disponible en el menú deslizable.

Auto-rotate feature in swupe-down menu

El objetivo principal de cambiar la pantalla al modo horizontal es aumentar el área de acción y respuesta, y volver a la normalidad cuando no sea necesario. Este último puede pasarse por alto si hay una salida directa de la aplicación. Entonces, esta no es una aplicación, sino una característica que se puede dar a cualquier aplicación. Algunas de las aplicaciones donde se puede agregar esta característica son:

  1. Aplicaciones de juegos: como se mencionó anteriormente. La vista horizontal brinda una mejor accesibilidad a la pantalla para tocar en aplicaciones de juegos.
  2. Aplicación de videos : las aplicaciones que transmiten multimedia, como un video, pueden habilitar esta función para ver el mismo video utilizando cada píxel de la pantalla.
  3. Aplicaciones de edición de fotos: esta función puede ayudar al usuario a ver los cambios y comparar dos partes diferentes de la imagen, ya que el tamaño de la pantalla ahora ha aumentado.
  4. Aplicaciones que requieren múltiples entradas del usuario: como un bloc de notas o un navegador, donde un usuario puede leer la línea completa o los párrafos que se están escribiendo o aplicaciones.

En esta aplicación, crearemos esta función y la mantendremos explícita, es decir, se debe hacer clic en un botón para realizar los cambios. El código de la última sección del artículo se limita únicamente a la aplicación creada. La orientación de la pantalla cambió dentro de la aplicación. No realice cambios fuera de la aplicación, es decir, la orientación fuera de la aplicación sigue siendo la misma que antes. kotlin

Pasos para cambiar la orientación de la pantalla mediante programación usando un botón 

Paso 1: crear un nuevo proyecto

Para crear un nuevo proyecto en Android Studio, consulte Cómo crear/iniciar un nuevo proyecto en Android Studio . Tenga en cuenta que seleccione Kotlin como lenguaje de programación.

Paso 2: trabajar con el archivo activity_main.xml

Cuando la configuración esté lista, vaya al archivo activity_main.xml , que representa la interfaz de usuario del proyecto. Cree un botón que cambie la orientación de la pantalla al hacer clic. actividad_principal.xml

XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
  
    <Button
        android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="click" />
  
</RelativeLayout>

Paso 3: trabajar con el archivo MainActivity.kt

En el archivo MainActivity.kt , declare el Botón para cambiar la orientación de la pantalla (consulte los códigos). Al configurar onClickListeners en el botón, la solicitud de orientación se envía a ActivityInfo . MainActivity.kt

Kotlin

import android.content.pm.ActivityInfo
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
  
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        val btn = findViewById<Button>(R.id.btn)
  
        // reference to change the orientation on every click
        var isPortrait = true
  
        // Button action on click
        btn.setOnClickListener {
            // if isPortrait true, change to Landscape
            requestedOrientation = if (isPortrait) {
                ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE
                // else change to Portrait           
            } else {
                ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
            }
  
            // opposite the value of isPortrait
            isPortrait = !isPortrait
        }
    }
}

Salida: ejecutar en el emulador

Publicación traducida automáticamente

Artículo escrito por aashaypawar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *