2025-05-17

android界面結構如下圖所示:

 
 

常用界面組件:

textview,listview,toast(簡短提示)等。

界面佈局:

LinearLayout:線性佈局

RelativeLayout:相對佈局

TableLayout:表單佈局

TabWideget:切換選項卡

 AbsoluteLayout:自定義x,y位置佈局

遊戲開發

遊戲開發不使用上述佈局方式,遊戲是通過狀態機讓Canvas不斷在view上面畫所需要的東西。

view類開發框架通知界面刷新可以使用Handler或者postInvalidate兩種方法:

Handler實例:

Handler myHandler = new Handler()
 {
  //接收到消息後處理
  public void handleMessage(Message msg)
  {
   switch (msg.what)
   {
   case Activity01.REFRESH:
    mGameView.invalidate();
    break;
   }
   super.handleMessage(msg);
  }  
 };

使用postInvalidate

class GameThread implements Runnable
 {
  public void run()
  {
   while (!Thread.currentThread().isInterrupted())
   {
    try
    {
     Thread.sleep(100);
    }
    catch (InterruptedException e)
    {
     Thread.currentThread().interrupt();
    }
    //使用postInvalidate可以直接在線程中更新界面
    mGameView.postInvalidate();
   }
  }
 }

SurfaceView類開發框架 www.aiwalls.com

SurfaceView類和view類開發框架明顯的不同在於,SurfaceView不需要通過線程來更新視圖,但在繪制之前必須使用lockCanvas方法鎖定畫佈,並得到畫佈,繪制完成後,使用unlockCanvasAndPost方法來解鎖畫佈,於是才能顯示在屏幕上。

Graphics類:paint,canvas等。

全屏顯示:requestWindowFeature(Window.FEATURE_NO_TITLE);

屏幕自適應:sensor

Tween動畫:通過對場景裡的對象不斷進行圖像變化(平移、縮放等)產生動畫效果。

Frame動畫:即順序播發實現做好的圖像。

Gif動畫:Gif解碼-》順序播放

 

摘自  Tyrone的專欄 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *