Нарисуйте текст на 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) означает, что текст рисуется за пределами видимой области.