Android中貪吃蛇游戲的學(xué)習(xí)(二)
文章分類(lèi): 移動(dòng)開(kāi)發(fā)
snake類(lèi)為Activty的類(lèi),是Android項(xiàng)目的主類(lèi)。
- package com.easyway.dev.android.snake;
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.Window;
- import android.widget.TextView;
- /**
- *貪吃蛇游戲(代碼來(lái)源自Android的源代碼中)
- *
- *每一種移動(dòng)開(kāi)發(fā)環(huán)境都有自己的基類(lèi)。如J2ME應(yīng)用程序的基類(lèi)是midlets,BREW的基類(lèi)是applets,
- *而Android程序的基類(lèi)是Activity。這個(gè)activity為我們提供了對(duì)移動(dòng)操作系統(tǒng)的基本功能和事件
- *的訪問(wèn)。這個(gè)類(lèi)包含了基本的構(gòu)造方法,鍵盤(pán)處理,掛起來(lái)恢復(fù)功能,以及其他底層的手持設(shè)備的訪問(wèn)。
- *實(shí)質(zhì)上,我們的應(yīng)用程序?qū)⑹且粋€(gè)Activity類(lèi)的擴(kuò)展。在本文中讀者將會(huì)通過(guò)例子學(xué)習(xí)到如何使用
- *Activity類(lèi)來(lái)編寫(xiě)Android程序。
- *
- *這事Android的Activty類(lèi)的子類(lèi),一個(gè)Activty類(lèi)是一個(gè)簡(jiǎn)單的啟動(dòng)程序和控制程序的類(lèi)。
- *它可以根據(jù)需要?jiǎng)?chuàng)建界面,但是不是必須。在Android程序中,用戶(hù)界面是由叫做views類(lèi)來(lái)組織的,一個(gè)
- *view可以簡(jiǎn)單理解為可以繪制的對(duì)象,
- */
- public class Snake extends Activity{
- private SnakeViewmSnakeView;
- private static StringICICLE_KEY= "snake-view" ;
- /**
- *onCreate方法將在應(yīng)用程序第一次開(kāi)始時(shí)調(diào)用。Bundle對(duì)象包含了任何用于建立參數(shù)或環(huán)境數(shù)據(jù)
- *所需要的基本信息。Activity可以是全屏的,或是懸浮的。它們可以是嵌套的,但是每一部分基
- *本是獨(dú)立的。
- *
- *在Activity類(lèi)被調(diào)用時(shí)首先被創(chuàng)建,關(guān)閉標(biāo)題欄,設(shè)置視圖內(nèi)容,激活視圖頁(yè)面
- *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類(lèi)的沒(méi)有執(zhí)行這個(gè)方法,將會(huì)沒(méi)有界面并且顯示白屏。
- 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號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
