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的專欄