Нарисуйте текст на SurfaceHolder

Я делаю приложение, которое использует веб-камеру, и я хочу отобразить текст после того, как фотография сделана, поэтому в методе 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");
        }
    };

Это не может привести к завершению моего приложения... Как я могу написать текст на поверхности?

1 ответ

Трудно сказать без логов, но я думаю, что lockCanvas() возвращает ноль. Это происходит, когда вы вызываете lockCanvas, когда Surface недоступен. Проверьте поверхность, Созданную и поверхность Разрушенную. Другая, но, возможно, не связанная проблема с вашим кодом - это координаты, которые вы используете с drawText(). (0,0) означает, что текст рисуется за пределами видимой области.

Другие вопросы по тегам