17

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

4

4 回答 4

21

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

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

</activity>

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

于 2013-01-06T13:38:15.523 回答
9
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);

    ...
}

解决您的问题

于 2013-01-06T13:02:46.390 回答
4

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

第 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);
   }

现在我的应用程序运行全屏,横向没有任何问题。谢谢你们。

于 2013-01-07T07:09:11.163 回答
1

把它放在onCreate()每个活动类(屏幕)中:

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

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

于 2014-08-20T13:39:38.013 回答