這是本系列最后一篇,最后就是將整個程序組成起來。坦克大戰(zhàn)游戲中有六個用戶界面:
按照 Android 程序一般設(shè)計方法,一般一個界面對應(yīng)一個 Activity。這樣就需要設(shè)計 6 個 Activity 子類對實現(xiàn)各個界面。
在移植的過程,這里采用了一個簡單的方法,采用一個 Activity 對就于 Java ME 中的 Midlet。
主 Activity 采用 FrameLayout
<?xml version=”1.0″ encoding=”utf-8″?>
<FrameLayout xmlns:android=”http://schemas.android.com/apk/res/android”
android:id=”@+id/mainwindow”
android:layout_width=”fill_parent”
android:layout_height=”fill_parent”
>
</FrameLayout>
FrameLayout 可以將它其中的其它 View 象撲克牌一樣疊放在一起,這樣將六個界面都放在主 Activity 的 FrameLayout 中,開始將它們都設(shè)置為不可見,需要顯示某個界面時,設(shè)為可見并放在最前面,也就實現(xiàn)了多個用戶界面。
public static void setCurrentScreen(View newScreen){
currentScreen.setVisibility(View.INVISIBLE);
currentScreen=newScreen;
currentScreen.setVisibility(View.VISIBLE);
theDisplay.bringChildToFront(currentScreen);
}
就是用于屏幕切換。
另外,有于程序主要移植于 JavaME,并且主要目的是為了了解 Android 平臺,和 JavaME 版相比不夠完善,但基本功能是實現(xiàn)了,如有興趣的可以進一步完善。
代碼下載 Android版坦克大戰(zhàn)
http://www.imobilebbs.com/download/android/battlecity/AndroidBattleCity.zip
Java ME版坦克大戰(zhàn)
http://www.imobilebbs.com/download/android/battlecity/BattleCityJavaME.zip