2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p><b>  計(jì)算機(jī)學(xué)院課程設(shè)計(jì)</b></p><p>  專 業(yè): 計(jì)算機(jī)應(yīng)用技術(shù) </p><p>  課程名稱: 3G開(kāi)發(fā)基礎(chǔ) </p><p>  課題名稱: 臺(tái)球游戲系統(tǒng) </p>&l

2、t;p>  教 師: </p><p>  學(xué) 號(hào): 姓 名:</p><p>  2013 年 9月 20 日 ——2013 年 12 月 25 日</p><p><b>  前言</b></p><p>  Android是基于Linux開(kāi)放性內(nèi)核的

3、操作系統(tǒng),是Google公司在2007年11月5日公布的手機(jī)操作系統(tǒng)。早期由原名為“Android”的公司開(kāi)發(fā),谷歌在2005年收購(gòu)“Android.Inc”后,繼續(xù)進(jìn)行對(duì)Android系統(tǒng)開(kāi)發(fā)運(yùn)營(yíng),它采用了軟件堆層的架構(gòu),主要分為三部分。底層Linux內(nèi)核只提供基本功能,其他的應(yīng)用軟件則由各公司自行開(kāi)發(fā),部分程序以Java編寫。 </p><p>  2011年初數(shù)據(jù)顯示,僅正式上市兩年的操作系統(tǒng)Android

4、已經(jīng)超越稱霸十年的塞班系統(tǒng),使之躍居全球最受歡迎的智能手機(jī)平臺(tái)。現(xiàn)在,Android系統(tǒng)不但應(yīng)用于智能手機(jī),也在平板電腦市場(chǎng)急速擴(kuò)張。</p><p>  綜合本學(xué)期的學(xué)習(xí),開(kāi)發(fā)一款基于android環(huán)境的臺(tái)球游戲,熟練掌握android應(yīng)用開(kāi)發(fā)。</p><p><b>  課程設(shè)計(jì)目的</b></p><p><b>  1.1關(guān)

5、于java</b></p><p>  1、熟悉Java開(kāi)發(fā)環(huán)境,熟悉用Java完成一個(gè)應(yīng)用程序的設(shè)計(jì)過(guò)程,掌握有關(guān)編 輯、調(diào)試和整合程序的方法和技巧。</p><p>  2、通過(guò)此設(shè)計(jì),了解Java語(yǔ)言的特點(diǎn);熟悉Java程序的編寫;體會(huì)Java語(yǔ)言在問(wèn)題求解中的特點(diǎn)。</p><p>  3、總結(jié)學(xué)習(xí)Java語(yǔ)言的心得和體會(huì),并對(duì)Java課程設(shè)置

6、提出自己的意見(jiàn)和建議。</p><p>  1.2關(guān)于android</p><p>  熟悉android開(kāi)發(fā)環(huán)境,熟悉用java語(yǔ)言實(shí)現(xiàn)一個(gè)安卓程序的設(shè)計(jì)過(guò)程,掌握有關(guān)的設(shè)計(jì)技巧</p><p>  熟悉android開(kāi)發(fā)環(huán)境,熟悉用java語(yǔ)言實(shí)現(xiàn)一個(gè)安卓程序的設(shè)計(jì)過(guò)程,掌握有關(guān)的設(shè)計(jì)技巧</p><p>  通過(guò)此課程設(shè)計(jì),了解and

7、roid系統(tǒng)的特點(diǎn),掌握android相關(guān)的知識(shí)點(diǎn)。</p><p>  總結(jié)學(xué)習(xí)android開(kāi)發(fā)環(huán)境,熟悉用java語(yǔ)言實(shí)現(xiàn)一個(gè)安卓程序的設(shè)計(jì)過(guò)程,掌握有關(guān)的設(shè)計(jì)技巧</p><p>  總結(jié)學(xué)習(xí)android的心得和體會(huì),并且android課程提出自己的意見(jiàn)和建議,從中得到自己的學(xué)習(xí)心得和體會(huì)。</p><p><b>  設(shè)計(jì)任務(wù)及要求</b

8、></p><p>  根據(jù)android課程學(xué)習(xí),將手機(jī)臺(tái)球游戲設(shè)計(jì)的總體設(shè)計(jì)框架以及詳細(xì)的設(shè)計(jì)和實(shí)現(xiàn)過(guò)程通老師講解和自己的理解將其全部以課程設(shè)計(jì)的方式書寫出來(lái)。</p><p><b>  總體設(shè)計(jì)框架</b></p><p><b>  詳細(xì)設(shè)計(jì)和實(shí)現(xiàn)過(guò)程</b></p><p><

9、;b>  4.1配置開(kāi)發(fā)環(huán)境</b></p><p><b>  1、 安裝JDK</b></p><p>  首先將下載的jdk-6u24-windows-i586安裝到C:\下</p><p><b>  2、配置環(huán)境變量</b></p><p>  選擇計(jì)算機(jī)>右鍵&g

10、t;屬性>高級(jí)設(shè)置>環(huán)境變量</p><p>  CLASSPATH : .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;</p><p>  JAVA_HOME : C:\Program Files(x86)\Java\jdk1.6.0_24</p><p>

11、  Path : %JAVA_HOME%\bin;</p><p>  將以上三個(gè)配置到環(huán)境變量中</p><p>  3、安裝eclipse</p><p>  雙擊eclipse快捷方式圖標(biāo),它會(huì)在你選擇的路徑下生成一個(gè)workspace文件夾,以后的項(xiàng)目都在這里面。</p><p><b>  安裝ADT</b>

12、;</p><p><b>  離線安裝ADT:</b></p><p>  點(diǎn)擊eclipse上的help進(jìn)入如圖所示,點(diǎn)擊add將ADT導(dǎo)入</p><p>  若安裝成功則會(huì)出現(xiàn)如圖所示的navigate下面手機(jī)圖標(biāo)。</p><p><b>  安裝SDK</b></p>&l

13、t;p>  點(diǎn)擊window進(jìn)入preference,然后點(diǎn)擊android,在SDK Location中導(dǎo)入SDK,安裝成功之后如圖所示。</p><p><b>  4.2功能定義</b></p><p>  臺(tái)球游戲是根據(jù)人們?nèi)粘V写蚺_(tái)球的模式進(jìn)行模擬式的通過(guò)點(diǎn)擊按鈕來(lái)調(diào)準(zhǔn)角度并出擊球桿。</p><p>  選擇【開(kāi)始游戲】之后可

14、選擇【倒計(jì)時(shí)模式】和【練習(xí)模式】進(jìn)行玩臺(tái)球游戲,另外還可以點(diǎn)擊【排行榜】查看分?jǐn)?shù)情況,倒計(jì)時(shí)模式是在一定的時(shí)間進(jìn)行玩游戲,練習(xí)模式是對(duì)于初次玩臺(tái)球游戲的玩家或者不熟練的玩家。</p><p><b>  4.3類的設(shè)計(jì)</b></p><p><b>  4.4類的功能</b></p><p><b>  各個(gè)類

15、功能清單</b></p><p><b>  4.5類的特點(diǎn)</b></p><p>  4.5.1抽象類WhatMessage的描述</p><p>  public class WhatMessage{</p><p>  public static final int GOTO_WELLCOME_VIE

16、W=0; //歡迎界面</p><p>  public static final int GOTO_MAIN_MENU_VIEW=1 ; //主菜單界面</p><p>  public static final int GOTO_GAME_VIEW=2;//游戲界面</p><p>  public static final int GOTO_SOUND

17、_CONTORL_VIEW=3; //聲音控制界面</p><p>  public static final int GOTO_WIN_VIEW=4;//勝利界面</p><p>  public static final int GOTO_FAIL_VIEW=5;//失敗界面</p><p>  public static final int

18、 GOTO_HIGH_SCORE_VIEW=6; //排行榜界面</p><p>  public static final int GOTO_HELP_VIEW=7; //幫助界面</p><p>  public static final int GOTO_ABOUT_VIEW=8; //關(guān)于界面</p><p>  public

19、static final int GOTO_CHOICE_VIEW=9; //選擇界面</p><p>  public static final int OVER_GAME=10; //游戲結(jié)束</p><p><b>  }</b></p><p>  這個(gè)類主要是標(biāo)識(shí)所有SurfaceView的常量,這些界面的

20、常量用數(shù)字0至10表示的好處是:在后面的編程過(guò)程中更快捷,而且簡(jiǎn)單明了。</p><p><b>  4.5.2界面設(shè)置</b></p><p>  public class AboutView extends ViewGroup{</p><p>  Paint paint;//畫筆引用</p><p>  

21、Bitmap bgBitmap;//背景圖片</p><p>  Bitmap bmp;//文字的圖片</p><p>  float bmpx;//文字位置</p><p>  public AboutView(GameActivity activity) {</p><p>  super(activit

22、y);</p><p>  setWillNotDraw(false);</p><p>  paint=new Paint();//創(chuàng)建畫筆</p><p>  paint.setAntiAlias(true);//打開(kāi)抗鋸齒</p><p>  initBitmap();//初始化位圖資源</p>

23、<p><b>  }</b></p><p>  //確定View的大小</p><p><b>  @Override</b></p><p>  protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {</p>

24、<p>  this.setMeasuredDimension(bgBitmap.getWidth(), bgBitmap.getHeight());</p><p><b>  }</b></p><p>  //確定各子控件的位置與大小,調(diào)用子控件的layout函數(shù)進(jìn)行</p><p><b>  @Override

25、</b></p><p>  protected void onLayout(boolean changed, int l, int t, int r, int b) {</p><p><b>  }</b></p><p><b>  //顯示函數(shù)</b></p><p><b

26、>  @Override</b></p><p>  public void onDraw(Canvas canvas) {</p><p>  canvas.drawBitmap(bgBitmap, 0, 0, paint);</p><p>  canvas.drawBitmap(bmp, bmpx+Constant.X_OFFSET, Con

27、stant.BMP_Y+Constant.Y_OFFSET, paint);</p><p><b>  }</b></p><p><b>  //加載圖片的方法</b></p><p>  public void initBitmap(){</p><p>  bgBitmap=BitmapFa

28、ctory.decodeResource(this.getResources(), R.drawable.help);</p><p>  bmp=BitmapFactory.decodeResource(this.getResources(), R.drawable.bmp0);</p><p>  bgBitmap=PicLoadUtil.scaleToFitFullScreen(b

29、gBitmap, Constant.wRatio, Constant.hRatio);</p><p>  bmp=PicLoadUtil.scaleToFit(bmp, Constant.ssr.ratio);</p><p>  //初始化圖片的位置</p><p>  bmpx=(Constant.SCREEN_WIDTH-bmp.getWidth())/2;

30、</p><p><b>  }</b></p><p><b>  }</b></p><p>  界面設(shè)置的類繼承ViewGroup,使用onMeasure確定view大小、onLayo確定各個(gè)子控件的位置與大小,onDraw方法顯示函數(shù),initBitmao方法加載圖片。</p><p>&

31、lt;b>  4.5.3監(jiān)聽(tīng)器</b></p><p>  public class KeyThread extends Thread {</p><p>  private boolean flag=true;</p><p>  GameView gameView;</p><p>  private int slee

32、pSpan=40;</p><p>  private float changeSpeedTime=80f;//改變速度的時(shí)間點(diǎn)</p><p>  public KeyThread(GameView gameView)</p><p><b>  {</b></p><p>  this.gameView=gameVi

33、ew;</p><p><b>  }</b></p><p><b>  @Override</b></p><p>  public void run()</p><p><b>  {</b></p><p>  while(flag)</p

34、><p><b>  {</b></p><p>  if(!((gameView.keyState&0x20)==0))//第6位是1,可以改變按下按鈕時(shí)間</p><p><b>  {</b></p><p>  gameView.btnPressTime+=3.5f;</p>

35、<p><b>  }</b></p><p>  if(!((gameView.keyState&0x1)==0))//和00001按位或,判斷第1位是否為1,標(biāo)志向左移</p><p><b>  {</b></p><p>  if(gameView.btnPressTime<change

36、SpeedTime)//如果按鍵時(shí)間不足</p><p><b>  {</b></p><p>  gameView.cue.rotateLeftSlowly();//將球桿慢速左轉(zhuǎn)</p><p><b>  }</b></p><p>  else//如果按鍵超過(guò)規(guī)定時(shí)間</p>

37、<p><b>  {</b></p><p>  gameView.cue.rotateLeftFast();//將大炮快速左轉(zhuǎn)</p><p><b>  }</b></p><p><b>  }</b></p><p>  else if(!((game

38、View.keyState&0x2)==0))//和00010按位或,判斷第2位是否為1,標(biāo)志向右移</p><p><b>  {</b></p><p>  if(gameView.btnPressTime<changeSpeedTime)//如果按鍵時(shí)間不足</p><p><b>  {</b><

39、;/p><p>  gameView.cue.rotateRightSlowly();//將球桿慢速右轉(zhuǎn)</p><p><b>  }</b></p><p>  else//如果按鍵超過(guò)規(guī)定時(shí)間</p><p><b>  {</b></p><p>  gameView.c

40、ue.rotateRightFast();//將大炮快速右轉(zhuǎn)</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  try{</b></p><p>  Thread.sleep(sleepSpan);//睡眠指定毫秒數(shù)&l

41、t;/p><p><b>  }</b></p><p>  catch(Exception e){</p><p>  e.printStackTrace();//打印堆棧信息</p><p><b>  }</b></p><p><b>  }</b>

42、</p><p><b>  }</b></p><p>  public void setFlag(boolean flag) {</p><p>  this.flag = flag;</p><p><b>  }</b></p><p><b>  }<

43、;/b></p><p>  這監(jiān)聽(tīng)器是起監(jiān)聽(tīng)作用的線程類,這段代碼是監(jiān)聽(tīng)觸控按鍵的線程類,這個(gè)線程是對(duì)球桿角度偏移進(jìn)行控制。</p><p>  4.5.4線程間通信</p><p>  Handler myHandler = new Handler(){//處理各個(gè)SurfaceView發(fā)送的消息</p><p>  public

44、void handleMessage(Message msg) {</p><p>  switch(msg.what)</p><p><b>  {</b></p><p>  case WhatMessage.GOTO_MAIN_MENU_VIEW:</p><p>  gotoMainMenuView();<

45、;/p><p><b>  break;</b></p><p>  case WhatMessage.GOTO_GAME_VIEW:</p><p>  gotoGameView();</p><p><b>  break;</b></p><p>  case WhatMe

46、ssage.GOTO_SOUND_CONTORL_VIEW:</p><p>  gotoSoundControlView();</p><p><b>  break;</b></p><p>  case WhatMessage.GOTO_WIN_VIEW:</p><p>  gotoWinView();</

47、p><p><b>  break;</b></p><p>  case WhatMessage.GOTO_FAIL_VIEW:</p><p>  gotoFailView();</p><p><b>  break;</b></p><p>  case WhatMess

48、age.GOTO_HIGH_SCORE_VIEW:</p><p>  gotoHighScoreView();</p><p><b>  break;</b></p><p>  case WhatMessage.GOTO_WELLCOME_VIEW:</p><p>  gotoWellcomeView();<

49、;/p><p><b>  break;</b></p><p>  case WhatMessage.GOTO_HELP_VIEW:</p><p>  gotoHelpView();</p><p><b>  break;</b></p><p>  case WhatMe

50、ssage.GOTO_ABOUT_VIEW:</p><p>  gotoAboutView();</p><p><b>  break;</b></p><p>  case WhatMessage.GOTO_CHOICE_VIEW:</p><p>  gotoChoiceView();</p>&l

51、t;p><b>  break;</b></p><p>  case WhatMessage.OVER_GAME:</p><p>  goToOverView();</p><p><b>  break;</b></p><p><b>  }</b></p&

52、gt;<p><b>  }</b></p><p><b>  };</b></p><p>  線程間的通信需要用到Handler來(lái)發(fā)送消息。線程之間的通信的原理是,線程通過(guò)Handler將消息發(fā)送出去,發(fā)出去的消息就會(huì)到進(jìn)入到MessageQueue中,然后再通過(guò)Looper將消息循環(huán)的發(fā)送出去。msg.what是Messge

53、對(duì)象的屬性,起到標(biāo)示作用。</p><p>  4.5.5自定義按鈕</p><p>  public class ImageButtonEx extends Button {</p><p>  protected Bitmap btBitmap;</p><p>  protected boolean bButtonPressed=fal

54、se;</p><p>  public ImageButtonEx(Context context){</p><p>  super(context);</p><p><b>  }</b></p><p>  public ImageButtonEx(Context context,Bitmap btBitmap

55、){</p><p>  super(context);</p><p>  this.btBitmap=btBitmap;</p><p>  setBackgroundDrawable(null);</p><p><b>  }</b></p><p>  自定義按鈕的好處是,可以根據(jù)自己的

56、喜愛(ài)和需要來(lái)繪制按鈕,可以使你的游戲界面做得更漂亮,吸引大眾的眼球。在這個(gè)游戲中的自定義按鈕需要用到圖形圖像處理中的畫布(Canvas)、畫筆(Paint)和位圖(Bitmap)。</p><p><b>  4.5.6定時(shí)器</b></p><p><b>  //繪制時(shí)間的方法</b></p><p>  public

57、 void drawSelf(Canvas canvas,Paint paint){</p><p>  int second=this.leftSecond%60;</p><p>  int minute=this.leftSecond/60;</p><p><b>  //繪制秒鐘</b></p><p> 

58、 drawNumberBitmap(second,numberBitmaps,endX+Constant.X_OFFSET,endY+Constant.Y_OFFSET,canvas, paint);</p><p><b>  //繪制分隔符</b></p><p>  int secondLength=(second+"").length()&

59、lt;=1 ? (second+"").length()+1 : (second+"").length();</p><p>  float breakMarkX=endX-secondLength*numberWidth-breakMarkWidth;</p><p>  float breakMarkY=endY;</p><

60、p>  canvas.drawBitmap(breakMarkBitmap, breakMarkX+Constant.X_OFFSET, breakMarkY+Constant.Y_OFFSET,paint);//繪制時(shí)間分隔符圖片</p><p><b>  //繪制分鐘</b></p><p>  float miniteEndX=breakMarkX;&l

61、t;/p><p>  float miniteEndY=endY;</p><p>  drawNumberBitmap(minute,numberBitmaps,miniteEndX+Constant.X_OFFSET,miniteEndY+Constant.Y_OFFSET,canvas, paint);</p><p><b>  }</b>

62、</p><p>  4.5.7 數(shù)據(jù)存儲(chǔ)</p><p>  //打開(kāi)或創(chuàng)建數(shù)據(jù)庫(kù)的方法</p><p>  public void openOrCreateDatabase()</p><p><b>  {</b></p><p><b>  try</b></p

63、><p><b>  {</b></p><p>  sld=SQLiteDatabase.openDatabase</p><p><b>  (</b></p><p>  "/data/data/com.bn.d2.bill/mydb", //數(shù)據(jù)庫(kù)所在路徑</p>

64、;<p>  null, //CursorFactory</p><p>  SQLiteDatabase.OPEN_READWRITE|SQLiteDatabase.CREATE_IF_NECESSARY //讀寫、若不存在則創(chuàng)建</p><p><b>  );</b></p><p>  String sql=&

65、quot;create table if not exists highScore" +</p><p><b>  "( " +</b></p><p>  "score integer," +</p><p>  "date varchar(20)" +</p>

66、;<p><b>  ");";</b></p><p>  sld.execSQL(sql);</p><p><b>  }</b></p><p>  catch(Exception e)</p><p><b>  {</b></

67、p><p>  Toast.makeText(this, "數(shù)據(jù)庫(kù)錯(cuò)誤:"+e.toString(), Toast.LENGTH_SHORT).show();</p><p><b>  }</b></p><p><b>  }</b></p><p>  //關(guān)閉數(shù)據(jù)庫(kù)的方法&l

68、t;/p><p>  public void closeDatabase()</p><p><b>  {</b></p><p><b>  try</b></p><p><b>  {</b></p><p>  sld.close();</p

69、><p><b>  }</b></p><p>  catch(Exception e)</p><p><b>  {</b></p><p>  Toast.makeText(this, "數(shù)據(jù)庫(kù)錯(cuò)誤:"+e.toString(), Toast.LENGTH_SHORT).sh

70、ow();;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  //插入記錄的方法</b></p><p>  public void insert(int score,String date)</p>&

71、lt;p><b>  {</b></p><p><b>  try</b></p><p><b>  {</b></p><p>  String sql="insert into highScore values("+score+",'"+d

72、ate+"');";</p><p>  sld.execSQL(sql);</p><p>  sld.close();</p><p><b>  }</b></p><p>  catch(Exception e)</p><p><b>  {<

73、/b></p><p>  Toast.makeText(this, "數(shù)據(jù)庫(kù)錯(cuò)誤:"+e.toString(), Toast.LENGTH_SHORT).show();;</p><p><b>  }</b></p><p><b>  }</b></p><p>&l

74、t;b>  //查詢的方法</b></p><p>  public String query(int posFrom,int length)//開(kāi)始的位置,要查尋的記錄條數(shù)</p><p><b>  {</b></p><p>  StringBuilder sb=new StringBuilder();//要返回

75、的結(jié)果</p><p>  Cursor cur=null;</p><p>  openOrCreateDatabase();</p><p>  String sql="select score,date from highScore order by score desc;";</p><p>  cur=sld.r

76、awQuery(sql, null);</p><p><b>  try</b></p><p><b>  { </b></p><p>  cur.moveToPosition(posFrom);//將游標(biāo)移動(dòng)到指定的開(kāi)始位置</p><p>  int count=0;

77、//當(dāng)前查詢記錄條數(shù)</p><p>  while(cur.moveToNext()&&count<length)</p><p><b>  {</b></p><p>  int score=cur.getInt(0);</p><p>  String date=cur.getStr

78、ing(1); </p><p>  sb.append(score);</p><p>  sb.append("/");</p><p>  sb.append(date);</p><p>  sb.append("/");//將記錄用"/"分隔開(kāi)

79、</p><p><b>  count++;</b></p><p>  } </p><p><b>  }</b></p><p>  catch(Exception e)</p><p><b>  {</b></p&g

80、t;<p>  Toast.makeText(this, "數(shù)據(jù)庫(kù)錯(cuò)誤:"+e.toString(), Toast.LENGTH_SHORT).show();</p><p><b>  }</b></p><p><b>  finally</b></p><p><b>  

81、{</b></p><p>  cur.close();</p><p>  closeDatabase();</p><p><b>  }</b></p><p>  //轉(zhuǎn)換成字符,并返回</p><p>  return sb.toString();</p>&l

82、t;p><b>  }</b></p><p>  //得到數(shù)據(jù)庫(kù)中記錄條數(shù)的方法</p><p>  public int getRowCount()</p><p><b>  {</b></p><p>  int result=0;</p><p>  Curs

83、or cur=null;</p><p>  openOrCreateDatabase();</p><p><b>  try</b></p><p><b>  {</b></p><p>  String sql="select count(score) from highScore

84、;"; </p><p>  cur=sld.rawQuery(sql, null);</p><p>  if(cur.moveToNext())</p><p><b>  {</b></p><p>  result=cur.getInt(0);</p><p><b

85、>  }</b></p><p><b>  }</b></p><p>  catch(Exception e)</p><p><b>  {</b></p><p>  Toast.makeText(this, "數(shù)據(jù)庫(kù)錯(cuò)誤:"+e.toString(),

86、 Toast.LENGTH_SHORT).show();</p><p><b>  }</b></p><p><b>  finally</b></p><p><b>  {</b></p><p>  cur.close();</p><p> 

87、 closeDatabase();</p><p><b>  }</b></p><p>  return result;</p><p><b>  }</b></p><p>  這個(gè)游戲中的數(shù)據(jù)存儲(chǔ)用到的是SQLite數(shù)據(jù)庫(kù)。SQLite是一個(gè)開(kāi)源的嵌入式關(guān)系數(shù)據(jù)庫(kù),它可以減少應(yīng)用程序管理數(shù)

88、據(jù)的開(kāi)銷,可移植性好,很容易使用,它本身很小,但卻高效而且可靠。嵌入式數(shù)據(jù)庫(kù)的一大好處是在程序內(nèi)部不需要網(wǎng)絡(luò)配置,也不需要管理。使用SQLite數(shù)據(jù)存儲(chǔ)需要熟悉SQL語(yǔ)句的使用。使用SQLite數(shù)據(jù)庫(kù)首先需要?jiǎng)?chuàng)建數(shù)據(jù)庫(kù),相關(guān)記錄就會(huì)在數(shù)據(jù)庫(kù)中。</p><p><b>  4.5.8多線程</b></p><p>  public void run(){</p&

89、gt;<p>  for(int i=0;i<totalSleepTime/sleepSpan;i++) {</p><p>  SurfaceHolder myholder=WinView.this.getHolder();</p><p>  Canvas canvas = myholder.lockCanvas();</p><p><

90、;b>  try {</b></p><p>  synchronized (myholder) {</p><p>  render(canvas);</p><p><b>  }</b></p><p>  } finally {</p><p>  if (canvas

91、!= null) {</p><p>  myholder.unlockCanvasAndPost(canvas);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  try{</b></p><p&

92、gt;  Thread.sleep(sleepSpan);</p><p><b>  }</b></p><p>  catch(Exception e){</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p>

93、;<b>  }</b></p><p>  該run方法是實(shí)現(xiàn)Runnable 接口的。關(guān)鍵字synchronized用來(lái)與對(duì)象的互斥鎖聯(lián)系。當(dāng)某個(gè)對(duì)象用synchronized修飾時(shí),表明該對(duì)象在任一時(shí)刻只能有一個(gè)線程訪問(wèn)。當(dāng)線程執(zhí)行到synchronized塊結(jié)束時(shí),需要釋放對(duì)象鎖。當(dāng)在synchronized塊中遇到break,return或拋出Exception,則自動(dòng)釋放對(duì)象鎖

94、。</p><p><b>  4.5.9信息提示</b></p><p>  Toast.makeText(this, "數(shù)據(jù)庫(kù)錯(cuò)誤:"+e.toString(), Toast.LENGTH_SHORT).show();</p><p>  Toast(提示)是Android中用來(lái)顯示提示消息的一種機(jī)制。Toast沒(méi)有焦點(diǎn)

95、且顯示的時(shí)間有限,不會(huì)打斷用戶的當(dāng)前操作,不能與用戶交互,顯示一段時(shí)間后會(huì)自動(dòng)消失。顯示時(shí)長(zhǎng)有有兩個(gè):一個(gè)是Toast.LENGTH_SHORT(短時(shí)間),另一種是Toast.LENGTH_LONG(長(zhǎng)時(shí)間)。</p><p>  4.5.10布局管理</p><p>  <LinearLayout xmlns:android="http://schemas.android

96、.com/apk/res/android"</p><p>  android:orientation="vertical"</p><p>  android:layout_width="fill_parent"</p><p>  android:layout_height="fill_parent&q

97、uot;</p><p><b>  ></b></p><p>  <TextView </p><p>  android:layout_width="fill_parent" </p><p>  android:layout_height="wrap_content&q

98、uot; </p><p>  android:text="@string/hello"</p><p><b>  /></b></p><p>  </LinearLayout></p><p>  此次布局用到的是線性布局,排列方式是相對(duì)于手機(jī)屏幕垂直排布,寬高占滿整個(gè)手機(jī)屏幕

99、,文字大小的高是包裹內(nèi)容,寬是占滿手機(jī)屏幕。</p><p><b>  設(shè)計(jì)小結(jié)</b></p><p>  在本次課程設(shè)計(jì)中,我學(xué)到了很多的知識(shí),我個(gè)人認(rèn)為這個(gè)臺(tái)球游戲編程需要一定的物理和數(shù)學(xué)基礎(chǔ),并且頭腦要保持時(shí)刻清醒,要不然很容易繞暈。在對(duì)Android的學(xué)習(xí)上是我學(xué)會(huì)了怎么將學(xué)到的理論知識(shí)用到實(shí)踐中去,改變了過(guò)去的學(xué)習(xí)方法和學(xué)習(xí)態(tài)度,找到了一門自己很喜歡的學(xué)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論