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.
- 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.
- 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
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
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.
- 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.
- 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"
?>
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:
Publicación traducida automáticamente
Artículo escrito por Rishabh007 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA