Android中貪吃蛇游戲的學(xué)習(xí)(二)
文章分類: 移動開發(fā)
snake類為Activty的類,是Android項(xiàng)目的主類。
- package com.easyway.dev.android.snake;
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.Window;
- import android.widget.TextView;
- /**
- *貪吃蛇游戲(代碼來源自Android的源代碼中)
- *
- *每一種移動開發(fā)環(huán)境都有自己的基類。如J2ME應(yīng)用程序的基類是midlets,BREW的基類是applets,
- *而Android程序的基類是Activity。這個(gè)activity為我們提供了對移動操作系統(tǒng)的基本功能和事件
- *的訪問。這個(gè)類包含了基本的構(gòu)造方法,鍵盤處理,掛起來恢復(fù)功能,以及其他底層的手持設(shè)備的訪問。
- *實(shí)質(zhì)上,我們的應(yīng)用程序?qū)⑹且粋€(gè)Activity類的擴(kuò)展。在本文中讀者將會通過例子學(xué)習(xí)到如何使用
- *Activity類來編寫Android程序。
- *
- *這事Android的Activty類的子類,一個(gè)Activty類是一個(gè)簡單的啟動程序和控制程序的類。
- *它可以根據(jù)需要創(chuàng)建界面,但是不是必須。在Android程序中,用戶界面是由叫做views類來組織的,一個(gè)
- *view可以簡單理解為可以繪制的對象,
- */
- public class Snake extends Activity{
- private SnakeViewmSnakeView;
- private static StringICICLE_KEY= "snake-view" ;
- /**
- *onCreate方法將在應(yīng)用程序第一次開始時(shí)調(diào)用。Bundle對象包含了任何用于建立參數(shù)或環(huán)境數(shù)據(jù)
- *所需要的基本信息。Activity可以是全屏的,或是懸浮的。它們可以是嵌套的,但是每一部分基
- *本是獨(dú)立的。
- *
- *在Activity類被調(diào)用時(shí)首先被創(chuàng)建,關(guān)閉標(biāo)題欄,設(shè)置視圖內(nèi)容,激活視圖頁面
- *CalledwhenActivityisfirstcreated.Turnsoffthetitlebar,setsup
- *thecontentviews,andfiresuptheSnakeView.
- *
- */
- @Override
- public void onCreate(BundlesavedInstanceState){
- super .onCreate(savedInstanceState);
- //setTitle("程序標(biāo)題");
- //NoTitlebar
- //設(shè)置標(biāo)題欄
- requestWindowFeature(Window.FEATURE_NO_TITLE);
- //Activty的setContentView()方法指示系統(tǒng)要用哪個(gè)view作為Activty的界面,
- //如果一個(gè)Activty類的沒有執(zhí)行這個(gè)方法,將會沒有界面并且顯示白屏。
- setContentView(R.layout.snake_layout);
- //查找設(shè)置視圖
- mSnakeView=(SnakeView)findViewById(R.id.snake);
- mSnakeView.setTextView((TextView)findViewById(R.id.text));
- //視圖狀態(tài)的為空創(chuàng)建一個(gè)新視圖,設(shè)置為準(zhǔn)備狀態(tài)
- if (savedInstanceState== null ){
- //Wewerejustlaunched--setupanewgame
- mSnakeView.setMode(SnakeView.READY);
- } else {
- //Wearebeingrestored
- //獲取資源的信息
- Bundlemap=savedInstanceState.getBundle(ICICLE_KEY);
- if (map!= null ){
- mSnakeView.restoreState(map);
- } else {
- //暫停狀態(tài)
- mSnakeView.setMode(SnakeView.PAUSE);
- }
- }
- }
- /**
- *暫停的操作
- */
- @Override
- protected void onPause(){
- super .onPause();
- //Pausethegamealongwiththeactivity
- mSnakeView.setMode(SnakeView.PAUSE);
- }
- @Override
- public void onSaveInstanceState(BundleoutState){
- //Storethegamestate
- outState.putBundle(ICICLE_KEY,mSnakeView.saveState());
- }
- }
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
