日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

01 Android 植物人大战僵尸-画个方块

發布時間:2023/12/20 Android 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 01 Android 植物人大战僵尸-画个方块 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. SurfaceView

更新的速度特別快,可以直接從內存或者DMA等硬件接口中取得圖像數據的繪圖容器

可以在主線程之外的線程中向屏幕繪圖上,可以避免繪圖任務繁重導致主線程阻塞,從而提高程序的反應速度。在游戲開發中多用到SurfaceView,游戲中的背景、人物、動畫等盡量在canvas繪制

2.SurfaceView 與View 的區別

SurfaceView 是在一個新的起的線程中繪制畫面,而View必須在UI中繪制更新畫面。可以理解為SurfaceView的更新不需要在主線程中進行,這樣就可以避免主線程來做大量的界面更新操作,引起ANR(主線程的界面更新的消息隊列中存在大量的更新界面請求)

實際開發中,高級UI和低級UI并用

3.SurfaceView的使用

  • 繼承SurfaceView并實現SurfaceHolder.Callback接口
  • 所有繪圖工作必須在Surface被創建之后才能愛上,而在Surface被銷毀之前必須結束,所以Callback中的SurfaceCreated和SurfaceDestroyer就成了繪圖處理代碼的邊界

    Surface是顯卡內存的映射

    public class GameView extends SurfaceView implements SurfaceHolder.Callback, Runnable {
  • SurfaceHolder
  • SurfaceHolder 為surfaceView的控制器,用來操縱surface。處理他的Canvas上畫的效果和動畫,控制表面,大小,像素

    注意點:
    - 2.1 abstact void addCallback(SurfaceHolder.Callback callBack)
    給SurfaceView 當前持有者一個回調事件,通過這個建立紐帶

    mSurfaceHolder = getHolder(); // 設置操作回調事件 mSurfaceHolder.addCallback(this);
    • 2.2 abstractCanvas lockCanvas()
      鎖定畫布,一般鎖定后就可以通過其返回的畫布對象Canvase,在其上面畫圖等操作
    // 鎖住畫布才能繪圖 mCanvas = mSurfaceHolder.lockCanvas(); mCanvas.drawRect(50, 50, 100, 100, mPaint);
    • 2.3 abstract Canvas lockCanvas(Rect dirty)
      鎖定畫布的某個區域進行畫圖等,因為畫完圖后,會調用下面的unlockCanvasAndPost來改變顯示內容

    相對部分內存要求比較高的游戲來說,可以不用重畫dirty外的其他區域的像素,可以提高速度

    • 2.4 abstract void unlockCanvasAndPost(Canvas canvas)
      結束鎖定畫圖,并提交改變
    // 解鎖并提交 mSurfaceHolder.unlockCanvasAndPost(mCanvas);

    4.SurfaceView的生命周期

    在SurfaceView的派生類中,使用geHolder方法來獲取SurfaceHolder對象,向addCallBack來添加回調函數

    surfaceChanged:在surfaceView的大小發生改變的時候回調

    surfaceCreated:在創建Surface時回調

    surfaceDestroyed:在銷毀Surface時激發

    5.畫一個方塊

    package com.su.botanywarzombies;import com.su.botanywarzombies.view.GameView;import android.app.Activity; import android.os.Bundle;public class MainActivity extends Activity {private GameView mGameView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);mGameView = new GameView(this);setContentView(mGameView);}}

    GameView 的基本使用方法

    package com.su.botanywarzombies.view;import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.util.Log; import android.view.SurfaceHolder; import android.view.SurfaceView;public class GameView extends SurfaceView implements SurfaceHolder.Callback, Runnable {public static final String TAG = GameView.class.getSimpleName();private boolean gameRunFlag;// 繪圖畫筆private Paint mPaint;// 繪圖畫布private Canvas mCanvas;private SurfaceHolder mSurfaceHolder;public GameView(Context context) {super(context);gameRunFlag = true;mPaint = new Paint();mSurfaceHolder = getHolder();// 設置操作回調事件mSurfaceHolder.addCallback(this);}@Overridepublic void surfaceCreated(SurfaceHolder arg0) {Log.d(TAG, "surfaceCreated");new Thread(this).start();}@Overridepublic void surfaceChanged(SurfaceHolder arg0, int arg1, int arg2, int arg3) {}@Overridepublic void surfaceDestroyed(SurfaceHolder arg0) {Log.d(TAG, "surfaceDestroyed");gameRunFlag = false;}@Overridepublic void run() {while (gameRunFlag) {// 這里需要考慮線程同步synchronized (mSurfaceHolder) {try {// 鎖住畫布才能繪圖mCanvas = mSurfaceHolder.lockCanvas();int color = mPaint.getColor();mPaint.setColor(Color.RED);mCanvas.drawRect(50, 50, 100, 100, mPaint);// 好習慣畫筆復位mPaint.setColor(color);} catch (Exception e) {e.printStackTrace();} finally {// 解鎖并提交mSurfaceHolder.unlockCanvasAndPost(mCanvas);}try {// 視頻達到24幀,1秒24幀圖片,肉眼是感受不到變化Thread.sleep(60);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}} }

    總結

    以上是生活随笔為你收集整理的01 Android 植物人大战僵尸-画个方块的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 黄色网页在线播放 | 欧美午夜激情视频 | 欧美性生活网站 | 欧美xx孕妇| 久久久人人人 | 国产精品久久久久久久久久东京 | 五十路毛片 | 天天夜夜操 | 欧美性极品少妇xxxx | 亚洲天堂网站 | 羽月希奶水一区二区三区 | 韩国av中文字幕 | 无码任你躁久久久久久久 | 五十路在线观看 | 天天干天天干天天干 | 成人免费毛片日本片视频 | 玉女心经是什么意思 | 不卡视频一区二区三区 | 人人干人| 污片视频在线观看 | 日韩一区二区三区中文字幕 | 91丝袜呻吟高潮美腿白嫩 | 五十路母 | 中国美女乱淫免费看视频 | 在线欧美日韩 | 亚洲天堂男人天堂 | 亚洲天堂一区二区 | 男女视频在线免费观看 | 国产高清一| 中文字幕亚洲欧美日韩 | 影音先锋在线视频观看 | 日韩成人一区二区三区 | 在线亚洲区| 91精品视频在线播放 | 成人网址在线观看 | 成人综合区| 亚洲精品成人电影 | 久久精品tv | 欧美人与动物xxxx | 免费看aaaaa级少淫片 | 成人免费版| 亚洲人xxx| 日韩在线观看免费全 | 亚洲免费在线看 | 久久岛国| 动漫av网 | 亚洲av激情无码专区在线播放 | 成人做爰视频www网站小优视频 | 在线中文字幕一区 | 色原网 | 疯狂做爰高潮videossex | 成人综合婷婷国产精品久久 | 欧美一级片播放 | 国产毛片久久久久久国产毛片 | 日韩在线免费视频观看 | 原创av | 妺妺窝人体色www在线小说 | 免费三级大片 | 天天视频入口 | 99久久久无码国产精品6 | 少妇毛片一区二区三区粉嫩av | 99re6热在线精品视频播放 | 精品一卡二卡三卡 | 96日本xxxxxⅹxxx70 | 国产免费一区二区三区网站免费 | 欧美一区二区三区在线看 | 亚洲免费色视频 | 亚洲а∨天堂久久精品2021 | 在线免费视频 | 亚洲三级在线观看 | 亚洲国产精品人人爽夜夜爽 | 亚洲一区中文 | 欧美亚洲国产另类 | 丝袜老师让我了一夜网站 | 91精品国产色综合久久不卡98 | 不卡视频在线播放 | 亚洲一卡二卡在线观看 | av一区二区三区在线 | 色777| 亚洲成在线 | 娇妻第一次尝试交换的后果 | 日大逼| 天天爽av | 国产一区二区三区四区三区四 | 欧美性爱精品在线 | 污在线观看 | 四虎4hu永久免费网站影院 | avxx| 欧美精品18| 欧美精品色哟哟 | 四虎中文字幕 | 天天看片天天操 | 福利社av | 成人福利一区二区三区 | 日韩成人精品在线 | 国产精品观看 | 久久亚洲av无码西西人体 | 欧美精品一区二区三区三州 | 99久久精品久久久久久清纯 |