0

私はウェブカメラを使用するアプリケーションを実行しており、写真を撮った後にテキストを表示したいので、メソッド 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");
        }
    };

アプリケーションの終了にひどく失敗します...どうすれば表面にテキストを書くことができますか?

4

1 に答える 1

0

ログなしで見分けるのは難しいですが、私の推測でlockCanvas()はnullを返します。これは、Surfaceが使用できないときにlockCanvasを呼び出すと発生します。surfaceCreatedとsurfaceDestroyedを確認してください。もう1つの、しかしおそらく無関係なコードの問題は、drawText()で使用する座標です。(0,0)は、テキストが表示領域の外側に描画されることを意味します。

于 2012-04-24T11:41:45.190 に答える