使 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 应用程序全屏和横向运行的主要内容,如果未能解决你的问题,请参考以下文章
在 jQuery Mobile 中,如果手机倾斜到横向,如何在编辑时使文本输入全屏显示?