OSDN Git Service

AI 144565: Improve the JetBoy samples
authorXavier Ducrohet <>
Sat, 4 Apr 2009 00:48:40 +0000 (17:48 -0700)
committerThe Android Open Source Project <initial-contribution@android.com>
Sat, 4 Apr 2009 00:48:40 +0000 (17:48 -0700)
  - use theme instead of window feature to remove titlebar
  - remove useless Layouts
  - Make custom view works in layout editor.
  - remove some warnings
  BUG=1596727

Automated import of CL 144565

samples/JetBoy/AndroidManifest.xml
samples/JetBoy/res/layout/main.xml
samples/JetBoy/src/com/example/android/jetboy/JetBoy.java
samples/JetBoy/src/com/example/android/jetboy/JetBoyView.java

index ccd3518..bba069d 100755 (executable)
@@ -1,38 +1,37 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-  
-          http://www.apache.org/licenses/LICENSE-2.0
-  
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
+       
+       Licensed under the Apache License, Version 2.0 (the "License");
+       you may not use this file except in compliance with the License.
+       You may obtain a copy of the License at
+       
+       http://www.apache.org/licenses/LICENSE-2.0
+       
+       Unless required by applicable law or agreed to in writing, software
+       distributed under the License is distributed on an "AS IS" BASIS,
+       WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+       See the License for the specific language governing permissions and
+       limitations under the License.
 -->
 
 <!-- This file describes the code in the JetBoy package, which is
-     used by the system to determine how to start the application and
-     integrate it with the rest of the system.  -->
-     
-     
-
+       used by the system to determine how to start the application and
+       integrate it with the rest of the system.  -->
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-      package="com.example.android.jetboy"
-      android:versionCode="1"
-      android:versionName="1.0.0">
-    <application android:icon="@drawable/icon" android:label="@string/app_name">
-        <activity android:name=".JetBoy"
-                  android:label="@string/app_name"
-                  android:screenOrientation="landscape">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.LAUNCHER" />
-            </intent-filter>
-        </activity>
-    </application>
-<uses-sdk android:minSdkVersion="3"></uses-sdk>
-</manifest> 
\ No newline at end of file
+       package="com.example.android.jetboy" android:versionCode="1"
+       android:versionName="1.0.0">
+       <application android:icon="@drawable/icon"
+               android:label="@string/app_name"
+               android:theme="@android:style/Theme.NoTitleBar">
+               <activity android:name=".JetBoy"
+                       android:label="@string/app_name"
+                       android:screenOrientation="landscape">
+                       <intent-filter>
+                               <action android:name="android.intent.action.MAIN" />
+                               <category
+                                       android:name="android.intent.category.LAUNCHER" />
+                       </intent-filter>
+               </activity>
+       </application>
+       <uses-sdk android:minSdkVersion="3"></uses-sdk>
+</manifest>
index b5309db..ea2277f 100755 (executable)
@@ -1,93 +1,31 @@
 <?xml version="1.0" encoding="utf-8"?>
 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="fill_parent"
-    android:layout_height="fill_parent">
-    
-    <com.example.android.jetboy.JetBoyView
-      android:id="@+id/JetBoyView"
-      android:layout_width="fill_parent"
-      android:layout_height="fill_parent"/>
-      
-       <LinearLayout
-        android:layout_width="fill_parent" android:layout_height="wrap_content"
-        android:layout_gravity="top" android:gravity="center_horizontal"
-        android:orientation="horizontal">
-        
-        <TextView
-          android:id="@+id/text"
-                 android:text="@string/helpText"
-                 style="@style/helpText"
-                 android:visibility="invisible"
-          android:layout_width="300px"
-          android:layout_height="300px"
-          android:layout_centerInParent="true"
-          android:gravity="left"
-          android:background="#88ffffff"
-          />
-        
-        </LinearLayout>
-        
-         <LinearLayout
-        android:layout_width="fill_parent" android:layout_height="wrap_content"
-        android:layout_gravity="bottom" android:gravity="center_horizontal"
-        android:orientation="horizontal">
-        
-                       <Button android:id="@+id/Button01" 
-                       android:text="@string/start"
-                       style="@style/ButtonText"
-                       android:layout_width="wrap_content" 
-                       android:layout_height="wrap_content" 
-                       android:clickable="true" 
-                       android:cursorVisible="true">
-                       </Button>
-                       
-                       
-                       
+       android:layout_width="fill_parent"
+       android:layout_height="fill_parent">
 
-               </LinearLayout>
-               
-         <LinearLayout
-        android:layout_width="fill_parent" android:layout_height="wrap_content"
-        android:layout_gravity="bottom" android:gravity="center_horizontal"
-        android:orientation="horizontal">
-               <Button android:id="@+id/Button02" 
-                       android:text="@string/retry"
-                       style="@style/ButtonText"
-                       android:visibility="invisible"
-                       android:layout_width="wrap_content" 
-                       android:layout_height="wrap_content" 
-                       android:clickable="true" 
-                       android:cursorVisible="true">
-                       </Button>
-                       
-                       <!--Button android:id="@+id/Button03" 
-                       android:text="@string/restart"
-                       style="@style/ButtonText"
-                       android:visibility="invisible"
-                       android:layout_width="wrap_content" 
-                       android:layout_height="wrap_content" 
-                       android:clickable="true" 
-                       android:cursorVisible="true">
-                       </Button-->
-                       
-               </LinearLayout>
-               
-               
-                <LinearLayout
-        android:layout_width="fill_parent" android:layout_height="wrap_content"
-        android:layout_gravity="top" android:gravity="right"
-        android:orientation="horizontal">
-        
-        <TextView
-          android:id="@+id/timer"
-                 android:text="@string/timer"
-                 style="@style/timerText"
-                 android:visibility="invisible"
-          android:layout_width="wrap_content"
-          android:layout_height="wrap_content"
-          android:gravity="right"
-          android:background="#000000"
-          android:textSize="24sp"/>
-        
-        </LinearLayout>
+       <com.example.android.jetboy.JetBoyView android:id="@+id/JetBoyView"
+               android:layout_width="fill_parent"
+               android:layout_height="fill_parent" />
+
+       <TextView android:id="@+id/text" android:text="@string/helpText"
+               style="@style/helpText" android:visibility="invisible" 
+               android:layout_width="300px" android:layout_height="300px"
+               android:background="#7Fffffff" android:layout_gravity="center" />
+
+       <Button android:id="@+id/Button01" android:text="@string/start"
+               style="@style/ButtonText" android:layout_width="wrap_content"
+               android:layout_height="wrap_content"
+               android:layout_gravity="center_horizontal|bottom" />
+
+       <Button android:id="@+id/Button02" android:text="@string/retry"
+               style="@style/ButtonText" android:visibility="invisible"
+               android:layout_width="wrap_content"
+               android:layout_height="wrap_content"
+               android:layout_gravity="center_horizontal|bottom" />
+
+       <TextView android:id="@+id/timer" android:text="@string/timer"
+               style="@style/timerText" android:visibility="invisible"
+               android:layout_width="wrap_content"
+               android:layout_height="wrap_content"
+               android:layout_gravity="top|right" android:background="#000000" />
 </FrameLayout>
index ac12d3c..88693af 100755 (executable)
@@ -25,7 +25,6 @@ import android.os.Bundle;
 import android.util.Log;
 import android.view.KeyEvent;
 import android.view.View;
-import android.view.Window;
 import android.widget.Button;
 import android.widget.TextView;
 
@@ -55,12 +54,8 @@ public class JetBoy extends Activity implements View.OnClickListener {
      * @param savedInstanceState - The previous instance of this app
      */
     public void onCreate(Bundle savedInstanceState) {
-
         super.onCreate(savedInstanceState);
 
-        // turn off the window's title bar
-        requestWindowFeature(Window.FEATURE_NO_TITLE);
-
         setContentView(R.layout.main);
 
         // get handles to the JetView from XML and the JET thread.
@@ -91,9 +86,8 @@ public class JetBoy extends Activity implements View.OnClickListener {
      * @param v The object which has been clicked
      */
     public void onClick(View v) {
-
         // this is the first screen
-        if (mJetBoyThread.getGameState() == mJetBoyThread.STATE_START) {
+        if (mJetBoyThread.getGameState() == JetBoyThread.STATE_START) {
             mButton.setText("PLAY!");
             mTextView.setVisibility(View.VISIBLE);
 
@@ -102,7 +96,7 @@ public class JetBoy extends Activity implements View.OnClickListener {
 
         }
         // we have entered game play, now we about to start running
-        else if (mJetBoyThread.getGameState() == mJetBoyThread.STATE_PLAY) {
+        else if (mJetBoyThread.getGameState() == JetBoyThread.STATE_PLAY) {
             mButton.setVisibility(View.INVISIBLE);
             mTextView.setVisibility(View.INVISIBLE);
             mTimerView.setVisibility(View.VISIBLE);
index 72142a9..c51f661 100755 (executable)
@@ -174,7 +174,6 @@ public class JetBoyView extends SurfaceView implements SurfaceHolder.Callback {
         // in this game 80 is used for sending asteroid
         // 82 is used as game time for 1/4 note beat.
         private final String mSendEvent = "80";
-
         private final String mTimerEvent = "82";
 
         // used to track beat for synch of mute/unmute actions
@@ -1360,38 +1359,41 @@ public class JetBoyView extends SurfaceView implements SurfaceHolder.Callback {
         holder.addCallback(this);
         
         // create thread only; it's started in surfaceCreated()
-        thread = new JetBoyThread(holder, context, new Handler() {
-
-            public void handleMessage(Message m) {
-
-                mTimerView.setText(m.getData().getString("text"));
-
-                //ok so maybe it isn't really a "lose"
-                //this bit was borrowed from lunar lander and then evolved.
-                //too close to deadline to mess with now.
-                if (m.getData().getString("STATE_LOSE") != null) {
-                    //mButtonRestart.setVisibility(View.VISIBLE);
-                    mButtonRetry.setVisibility(View.VISIBLE);
-
-                    mTimerView.setVisibility(View.INVISIBLE);
-
-                    mTextView.setVisibility(View.VISIBLE);
-
-                    Log.d(TAG, "the total was " + mHitTotal);
-
-                    if (mHitTotal >= mSuccessThreshold) {
-                        mTextView.setText(R.string.winText);
-                    } else {
-                        mTextView.setText("Sorry, You Lose! You got " + mHitTotal
-                                + ". You need 50 to win.");
+        // except if used in the layout editor.
+        if (isInEditMode() == false) {
+            thread = new JetBoyThread(holder, context, new Handler() {
+    
+                public void handleMessage(Message m) {
+    
+                    mTimerView.setText(m.getData().getString("text"));
+    
+                    //ok so maybe it isn't really a "lose"
+                    //this bit was borrowed from lunar lander and then evolved.
+                    //too close to deadline to mess with now.
+                    if (m.getData().getString("STATE_LOSE") != null) {
+                        //mButtonRestart.setVisibility(View.VISIBLE);
+                        mButtonRetry.setVisibility(View.VISIBLE);
+    
+                        mTimerView.setVisibility(View.INVISIBLE);
+    
+                        mTextView.setVisibility(View.VISIBLE);
+    
+                        Log.d(TAG, "the total was " + mHitTotal);
+    
+                        if (mHitTotal >= mSuccessThreshold) {
+                            mTextView.setText(R.string.winText);
+                        } else {
+                            mTextView.setText("Sorry, You Lose! You got " + mHitTotal
+                                    + ". You need 50 to win.");
+                        }
+    
+                        mTimerView.setText("1:12");
+                        mTextView.setHeight(20);
+    
                     }
-
-                    mTimerView.setText("1:12");
-                    mTextView.setHeight(20);
-
-                }
-            }//end handle msg
-        });
+                }//end handle msg
+            });
+        }
 
         setFocusable(true); // make sure we get key events