2012-04-24 66 views
0

文字我在做一個應用程序女巫使用網絡攝像頭,我想顯示一些文本拍攝照片後這樣的方法ShutterCallBack我寫這篇借鑑SurfaceHolder

ShutterCallback shutterCallback = new ShutterCallback() { 
     public void onShutter() { 
      Log.d("DHA", "onShutter'd"); 
      Canvas cnv = mSurfaceHolder.lockCanvas(null); 
      Log.w("DHA", "Nana"); 
      Paint p = new Paint(); 
      Log.w("DHA", "Nana2"); 
      p.setColor(Color.RED); 
      Log.w("DHA", "Nana3"); 
      cnv.drawText("Hello", 0, 0, p); 
      Log.w("DHA", "Nana4"); 
      mSurfaceHolder.unlockCanvasAndPost(cnv); 
      Log.w("DHA", "Nana5"); 
     } 
    }; 

失敗awfuly終止我的應用程序。 ..我可以在表面寫文字嗎?

回答

0

很難說沒有日誌,但我的猜測是,lockCanvas()返回null。當Surface不可用時調用lockCanvas時會發生這種情況。檢查surfaceCreated和surfaceDestroyed。 另一個,但可能與您的代碼無關的問題是您使用drawText()所使用的座標。 (0,0)表示文本被繪製在可見區域之外。