使 Android 应用程序全屏和横向运行

Posted

技术标签:

【中文标题】使 Android 应用程序全屏和横向运行【英文标题】:Making an Android app run full screen and landscape 【发布时间】:2013-01-06 12:58:32 【问题描述】:

我见过某些应用程序,尤其是大多数游戏(例如愤怒的小鸟、Temple Run 等)在启动时会以全屏和横向模式运行。它们的方向永远不会改变,并且在触摸屏幕时它们永远不会退出全屏。它是怎么做的?我需要更改或编码哪些属性?

【问题讨论】:

对不起,这是一个常见问题,请使用谷歌和安卓开发者网站:developer.android.com/develop/index.html; google.com 两次快速的 Google 搜索揭示了您问题的答案。在活动上强制全屏:androidsnippets.com/how-to-make-an-activity-fullscreen 在活动上强制方向:***.com/questions/2150287/… 我用谷歌搜索了它,但徒劳无功。在 Android Developers 网站上,尽管浏览了所有属性等,我还是无法弄清楚。 又一个例子说明了“如此原教旨主义”是多么可悲。您可以对大量 SO 问题说“使用 Google”,其中许多问题有数十或数百张选票。似乎没有人抱怨他们。 【参考方案1】:

如果您更喜欢使用 XML,可以更改 AndroidManifest.xml:

<activity android:name="..."
    android:screenOrientation="landscape"
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen">

</activity>

如果您的目标是 Android SDK 9 或更高版本,您可以使用 sensorLandscape 而不是 landscape,这意味着屏幕将在正常横向和反向正常方向上看起来正确横向。

【讨论】:

如果设置 min sdk = 8,并在 manifest 中使用 sensorLandscape,应用程序会崩溃吗?【参考方案2】:
import android.view.Window;
import android.view.WindowManager;
import android.content.pm.ActivityInfo;

@Override public void onCreate(Bundle savedInstanceState)

    ...

    // Set window fullscreen and remove title bar, and force landscape orientation
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

    ...

解决您的问题

【讨论】:

知道了!!谢谢@siranen 它更好...将其添加到您各自的活动中【参考方案3】:

问题解决了,根据上面给出的答案,我所做的是,

第 1 步: 在 manifest.xml 文件中,

<application
. . .
android:screenOrientation="landscape"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
. . .
</application>

第 2 步: 在Java文件中,我做了如下改动,

@Override
protected void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
   

现在我的应用程序可以全屏、横向运行,没有任何问题。谢谢大家。

【讨论】:

【参考方案4】:

将其放入每个活动类(屏幕)中的onCreate()

requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
                                WindowManager.LayoutParams.FLAG_FULLSCREEN);

此代码将禁用 android 通知栏(从上到下)。 !!!

【讨论】:

以上是关于使 Android 应用程序全屏和横向运行的主要内容,如果未能解决你的问题,请参考以下文章

具有全屏和列表视图的 Android 故障打开应用程序

响应式图像全屏和居中 - 保持纵横比,不超过窗口

如何使应用程序以全屏模式运行?

在 jQuery Mobile 中,如果手机倾斜到横向,如何在编辑时使文本输入全屏显示?

Android 实现从网络获取视频URL显示在视频播放器(IjkVideoView)能全屏和保存视频到手机的功能

js之切换全屏和退出全屏实现