Orientaciones de pantalla en Android con ejemplos

La orientación de la pantalla , también conocida como rotación de la pantalla , es el atributo del elemento de actividad en Android. Cuando la orientación de la pantalla cambia de un estado a otro, también se conoce como cambio de configuración .

Estados de orientación de la pantalla
Hay varios estados posibles de orientación de la pantalla para cualquier aplicación de Android, como:

  • Información de actividad.SCREEN_ORIENTATION_LANDSCAPE
  • Información de actividad.SCREEN_ORIENTATION_PORTRAIT
  • Información de actividad.SCREEN_ORIENTATION_UNSPECIFIED
  • Información de actividad.SCREEN_ORIENTATION_USER
  • Información de actividad.SCREEN_ORIENTATION_SENSOR
  • Información de actividad.SCREEN_ORIENTATION_BEHIND
  • Información de actividad.SCREEN_ORIENTATION_NOSENSOR
  • Información de actividad.SCREEN_ORIENTATION_SENSOR_LANDSCAPE
  • Información de actividad.SCREEN_ORIENTATION_SENSOR_PORTRAIT
  • Información de actividad.SCREEN_ORIENTATION_REVERSE_PORTRAIT

La orientación inicial de la pantalla debe definirse en el archivo AndroidManifest.xml .

Sintaxis:

AndroidManifest.xml

<activity android:name="package_name.Your_ActivityName"  
    android:screenOrientation="orientation_type">  
</activity>  

Ejemplo:

    android:screenOrientation="orientation_type">

¿Cómo cambiar la orientación de la pantalla?
Este es un ejemplo de una aplicación de Android que cambia la orientación de la pantalla para el modo horizontal y vertical.

Crearemos dos actividades de diferente orientación de pantalla.

  • La primera actividad será de orientación “ retrato ” y
  • Segunda actividad como estado de orientación “ paisajista ”.

Demostración paso a paso:

  • Creación de las actividades: habrá dos actividades y, por lo tanto, dos archivos XML, uno para cada actividad.
    1. activity_main.xml : el archivo XML para la primera actividad consiste en un diseño de restricción con botón y vista de texto en él. Esta actividad se encuentra en estado Paisaje.
    2. activity_next.xml : el archivo XML para la segunda actividad consiste en un diseño de restricción con Vista de texto en él. Esta actividad se encuentra en estado Paisaje.

    A continuación se muestra el código para ambas actividades:

    actividad_principal.xml

    <?xml version="1.0" encoding="utf-8"?>  
    <!--Constraint Layout-->
    <android.support.constraint.ConstraintLayout
        xmlns:android="http://schemas.android.com/apk/res/android"  
        xmlns:tools="http://schemas.android.com/tools"  
        android:layout_width="match_parent"  
        android:layout_height="match_parent"  
        tools:context="com.geeksforgeeks.screenorientation.MainActivity">
        <!--Button to launch next activity with onClick-->  
        <Button  
            android:id="@+id/b1"  
            android:layout_width="wrap_content"  
            android:layout_height="wrap_content"
            android:text="Next Activity"    
            android:layout_marginTop="100dp"  
            android:onClick="onClick"
            android:layout_marginBottom="10dp"   
            app:layout_constraintBottom_toBottomOf="parent"  
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintVertical_bias="0.613"  
            app:layout_constraintHorizontal_bias="0.612"  
            app:layout_constraintStart_toStartOf="parent"  
            app:layout_constraintTop_toBottomOf="@+id/tv1"  
             /> 
        <!--TextView -->
        <TextView  
            android:text="Potrait orientation"  
            android:layout_width="wrap_content"  
            android:layout_height="wrap_content"  
            android:layout_centerHorizontal="true"   
            android:layout_marginTop="124dp"
            android:textSize="25dp"  
            app:layout_constraintEnd_toEndOf="parent"  
            app:layout_constraintHorizontal_bias="0.502"  
            app:layout_constraintStart_toStartOf="parent"  
            app:layout_constraintTop_toTopOf="parent" />  
    </android.support.constraint.ConstraintLayout>  

    actividad_siguiente.xml

    <?xml version="1.0" encoding="utf-8"?>  
      
    <!--Constraint layout-->  
    <android.support.constraint.ConstraintLayout
      
        xmlns:android="http://schemas.android.com/apk/res/android"  
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_height="match_parent"  
        android:layout_width="match_parent"    
        tools:context="com.geeksforgeeks.screenorientation.NextActivity">  
      
        <!--TextView-->  
        <TextView  
            android:id="@+id/tv"  
            android:text="Landscape orientation"
            android:layout_width="wrap_content"  
            android:layout_height="wrap_content"    
            android:layout_marginTop="170dp"    
            android:textSize="22dp"  
            app:layout_constraintStart_toStartOf="parent" 
            app:layout_constraintEnd_toEndOf="parent"  
            app:layout_constraintHorizontal_bias="0.502"  
            app:layout_constraintTop_toTopOf="parent" />  
    </android.support.constraint.ConstraintLayout
  • Creación del archivo Java: habrá dos actividades y, por lo tanto, dos archivos Java, uno para cada actividad.
    1. MainActivity.java : archivo Java para la actividad principal, en el que el oyente setOnClick() se adjunta al botón para iniciar la siguiente actividad con una orientación diferente.
    2. NextActivity.java : archivo Java para la próxima actividad que está en modo horizontal.

    MainActivity.java

    package com.geeksforgeeks.screenorientation;
      
    import android.support.v7.app.AppCompatActivity;
    import android.content.Intent;
    import android.view.View;
    import android.widget.Button;
      
    public class MainActivity extends AppCompatActivity {
      
        // declare button variable
        Button button;
      
        @Override
        protected void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
      
            // initialise button with id
            button = findViewById(R.id.b1);
        }
      
        // onClickListener attached to button
        // to send intent to next activity
        public void onClick(View v)
        {
            // Create instance of intent and
            // startActivity with intent object
            Intent intent
                = new Intent(
                    MainActivity.this,
                    NextActivity.class);
            startActivity(intent);
        }
    }

    SiguienteActividad.java

    package com.geeksforgeeks.screenorientation;
      
    import android.support.v7.app.AppCompatActivity;
      
    public class MainActivity extends AppCompatActivity {
      
        @Override
        protected void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
        }
    }
  • Actualización del archivo AndroidManifest : en el archivo AndroidManifest.xml, agregue el estado screenOrientation en la actividad junto con su orientación. Aquí, proporcionamos orientación » retrato » para MainActivity y » paisaje » para NextActivity.

    A continuación se muestra el código para el archivo AndroidManifest:

    AndroidManifest.xml

    <?xml version="1.0" encoding="utf-8"?>  
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
        package="com.geeksforgeeks.screenorientation">  
        
        <application  
            android:allowBackup="true"  
            android:icon="@mipmap/ic_launcher"  
            android:label="@string/app_name"  
            android:roundIcon="@mipmap/ic_launcher_round"  
            android:supportsRtl="true"  
            android:theme="@style/AppTheme"
            <!-Define potrait orientation for Main activity-->  
            <activity  
                android:name="com.geeksforgeeks.screenorientation.MainActivity"  
                android:screenOrientation="portrait">  
                <intent-filter>  
                    <action android:name="android.intent.action.MAIN" />  
                    <category android:name="android.intent.category.LAUNCHER" />  
                </intent-filter>  
            </activity
            <!--Define landscape orientation for NextActivity--> 
            <activity android:name=".NextActivity"  
                android:screenOrientation="landscape">  
            </activity>  
        </application>  
    </manifest>   
  • Producción:
    1. Actividad 1:
    2. Actividad 2:

Publicación traducida automáticamente

Artículo escrito por Rishabh007 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 *