通常,任何应用程序的屏幕方向都是纵向样式。但是,当涉及到游戏或任何其他多媒体服务(如观看视频)时,在不需要该功能时,屏幕方向必须在功能上从纵向更改为横向,反之亦然。因此,开发人员必须显式地编写一个程序,在该程序中方向会发生变化,而传统上无需用户通过打开和关闭向下滑动菜单中可用的旋转/自动旋转来调用它。
将屏幕更改为横向模式的主要重点是增加动作和响应的区域,并在不需要时恢复正常。如果直接退出应用程序,则可以忽略后者。因此,这不是应用程序,而是可以提供给任何应用程序的功能。可以添加此功能的一些应用程序是:
- 游戏应用程序:如前所述。横向视图为游戏应用程序中的触摸屏提供了更好的可访问性。
- 视频应用程序:广播诸如视频之类的多媒体的应用程序可以使此功能通过利用每个屏幕的像素来观看同一视频。
- 照片编辑应用程序:此功能可以帮助用户查看更改并比较图像的两个不同部分(随着显示尺寸的增加)。
- 需要多个用户输入的应用程序:例如记事本或浏览器,用户可以在其中阅读正在编写的整个行或段落或应用程序。
在此应用程序中,我们将创建此功能并将其保持明确,即,应单击一个按钮以进行更改。本文后面部分中的代码仅限于创建的应用程序。在应用程序内部更改的屏幕方向不会在应用程序外部进行任何更改,即,应用程序外部的方向与以前相同。请注意,我们将使用Kotlin语言实施此项目。
使用按钮以编程方式更改屏幕方向的步骤
步骤1:创建一个新项目
要在Android Studio中创建新项目,请参阅如何在Android Studio中创建/启动新项目。请注意,选择Kotlin作为编程语言。
步骤2:使用activity_main.xml文件
设置完成后,转到activity_main.xml文件,该文件代表项目的UI。创建一个按钮,更改单击时的屏幕方向。以下是activity_main.xml文件的代码。
XML
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
步骤3:使用MainActivity.kt文件
在MainActivity.kt文件中,声明Button以更改屏幕方向(请参阅代码)。将onClickListeners设置为Button时,方向请求将发送到ActivityInfo 。下面是MainActivity.kt文件的代码。在代码内部添加了注释,以更详细地了解代码。
科特林
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