屏幕方向,也称为屏幕旋转,是android中activity元素的属性。当屏幕方向从一种状态更改为另一种状态时,也称为配置更改。
屏幕方向状态
任何Android应用程序都有各种可能的屏幕方向状态,例如:
- ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE
- ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
- ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED
- ActivityInfo.SCREEN_ORIENTATION_USER
- ActivityInfo.SCREEN_ORIENTATION_SENSOR
- ActivityInfo.SCREEN_ORIENTATION_BEHIND
- ActivityInfo.SCREEN_ORIENTATION_NOSENSOR
- ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE
- ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT
- ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT
屏幕的初始方向必须在AndroidManifest.xml文件中定义。
句法:
AndroidManifest.xml
activity_main.xml
activity_next.xml
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);
}
}
NextActivity.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);
}
}
AndroidManifest.xml
例子:
android:screenOrientation="orientation_type">
如何更改屏幕方向?
这是一个Android应用程序的示例,该应用程序可更改横向和纵向模式的屏幕方向。
我们将创建两个不同屏幕方向的活动。
- 第一项活动将是“纵向”定向,
- 第二活动为“景观”取向状态。
分步演示:
- 创建活动:将有两个活动,因此有两个XML文件,每个活动一个。
- activity_main.xml :第一个活动的XML文件由约束布局组成,其中包含Button和Text View。该活动处于风景状态。
- activity_next.xml :用于第二个活动的XML文件由约束布局和文本视图组成。该活动处于风景状态。
以下是这两项活动的代码:
activity_main.xml
activity_next.xml
- 创建Java文件:将有两个活动,因此有两个Java文件,每个活动一个。
- 主要活动。 Java :Main活动的Java文件,其中setOnClick()侦听器附加到按钮上,以不同的方向启动下一个活动。
- NextActivity。 Java :处于“横向”模式的“下一个活动”的Java文件。
主要活动。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); } }
NextActivity。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); } }
- 更新AndroidManifest文件:在AndroidManifest.xml文件中,在活动中添加screenOrientation状态及其方向。在这里,我们为MainActivity提供“纵向”方向,为NextActivity提供“横向”方向。
以下是AndroidManifest文件的代码:
AndroidManifest.xml
- 输出:
- 活动1:
- 活动2:
- 活动1: