android开发(三):android界面与游戏开发
2801 点击·0 回帖
![]() | ![]() | |
![]() | 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类开发框架 SurfaceView类和view类开发框架明显的不同在于,SurfaceView不需要通过线程来更新视图,但在绘制之前必须使用lockCanvas方法锁定画布,并得到画布,绘制完成后,使用unlockCanvasAndPost方法来解锁画布,于是才能显示在屏幕上。 Graphics类:paint,canvas等。 全屏显示:requestWindowFeature(Window.FEATURE_NO_TITLE); 屏幕自适应:sensor Tween动画:通过对场景里的对象不断进行图像变化(平移、缩放等)产生动画效果。 Frame动画:即顺序播发实现做好的图像。 Gif动画:Gif解码-》顺序播放 摘自 Tyrone的专栏 | |
![]() | ![]() |