我正在做一个使用网络摄像头的应用程序,我想在拍摄照片后显示一些文字,所以在方法ShutterCallBack中我写了这个
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");
}
};
它无法终止我的应用程序......如何在表面上书写文字?
答案 0 :(得分:0)
没有日志很难说,但我的猜测是lockCanvas()
返回null。当Surface不可用时调用lockCanvas时会发生这种情况。检查surfaceCreated和surfaceDestroyed。
您的代码的另一个但可能不相关的问题是您使用drawText()的坐标。 (0,0)表示文本在可见区域之外绘制。