📜  Android中的屏幕方向示例

📅  最后修改于: 2021-05-10 14:32:19             🧑  作者: Mango

屏幕方向,也称为屏幕旋转,是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文件,每个活动一个。
    1. activity_main.xml :第一个活动的XML文件由约束布局组成,其中包含Button和Text View。该活动处于风景状态。
    2. activity_next.xml :用于第二个活动的XML文件由约束布局和文本视图组成。该活动处于风景状态。

    以下是这两项活动的代码:

    activity_main.xml

      
    
    
          
         
        
          
      
    

    activity_next.xml

      
      
      
      
      
          
          
     
    
  • 创建Java文件:将有两个活动,因此有两个Java文件,每个活动一个。
    1. 主要活动。 Java :Main活动的Java文件,其中setOnClick()侦听器附加到按钮上,以不同的方向启动下一个活动。
    2. 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. 活动1:
    2. 活动2: