我用SurfaceView修改了GAMEPLAY SCREEN(我根据LunarLander示例为SurfaceView创建了一个类,当我导航到GAMEPLAY SCREEN时,我看到了黑色画布):
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<!-- INVITATION POPUP -->
<LinearLayout android:id="@+id/invitation_popup" style="@style/InvPopup">
<TextView android:id="@+id/incoming_invitation_text" style="@style/InvPopupText" />
<Button android:id="@+id/button_accept_popup_invitation"
style="@style/InvPopupButton"
android:text="@string/accept_popup_invite" />
</LinearLayout>
<!-- "PLEASE WAIT" SCREEN -->
<LinearLayout android:id="@+id/screen_wait" style="@style/LLScreen">
<TextView style="@style/Blurb" android:text="@string/please_wait" />
</LinearLayout>
<!-- GAMEPLAY SCREEN -->
<LinearLayout android:id="@+id/screen_game" style="@style/LLScreen">
<com.ecsbackgammon.BackgammonBoardView
android:id="@+id/bbview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
</LinearLayout>
</FrameLayout>
我注意到ButtonClicker示例中有一些代码阻止活动在物理上转动时进入横向模式。所以似乎陀螺仪是 被忽略了。我有一种感觉,这与Activity的类派生自BaseGameActivity这一事实有关,尽管我还不确定该寻找什么可能会阻止横向模式的发生。 因此,Activity在ButtonClicker示例中派生,如:
public class MainActivity extends BaseGameActivity
implements View.OnClickListener, RealTimeMessageReceivedListener,
RoomStatusUpdateListener, RoomUpdateListener, OnInvitationReceivedListener {
因此,在应用程序中,所有LinearLayouts都被隐藏,并且当用户导航活动时,一次只能看到一个。所以我的问题是关于景观模式。有没有办法只启用横向模式 当GAMEPLAY SCREEN是活动视图?什么阻止了横向模式?事实上,我认为在我的应用程序中,仅当GAMEPLAY SCREEN是活动视图时禁用纵向模式才有用。
谢谢
答案 0 :(得分:1)
你最有可能的问题是你没有为androidmanifest中的活动改变android:screenorientation这个例子。
<activity
android:name="com.google.example.games.bc.MainActivity"
android:label="@string/app_name"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
ButtonClicker2000示例默认将其锁定为纵向这一事实是个问题。你可能希望它是:
android:screenOrientation="sensor"