在CameraPreview(Android)上绘制文本

在CameraPreview(Android)上绘制文本,android,text,opengl-es,camera,Android,Text,Opengl Es,Camera,基本上,我能够使用视图在CameraPreview上绘制一个简单的文本: class DrawOnTop extends View { public DrawOnTop(Context context) { super(context); // TODO Auto-generated constructor stub } @Override protected void onDraw(Ca

基本上,我能够使用视图在CameraPreview上绘制一个简单的文本:

    class DrawOnTop extends View {



    public DrawOnTop(Context context) {

            super(context);

            // TODO Auto-generated constructor stub

    }



    @Override

    protected void onDraw(Canvas canvas) {

            // TODO Auto-generated method stub



            Paint paint = new Paint();

            paint.setStyle(Paint.Style.FILL);

            paint.setColor(Color.BLACK);

            paint.setFakeBoldText(true);


            canvas.drawText("Test Text", 
                    30,
                    30, paint);

            super.onDraw(canvas);

    } 
}

但我希望在相机预览的底部有一个类似“祝酒词”的东西,而不是像这样的简单文本。我可以给你一个例子来说明我的意思,看看这张图片:

我想实现同样的目标,我尝试过opengles但没有成功。。。有人能帮忙吗?多谢各位


编辑:我可以在GLSurfaceView中绑定camerapreview,我只需要知道如何在OpenGLES中绘制一个包含文本的框,就像烤面包一样。感谢

相机预览将转到SurfaceView或以编码形式馈送到您指定的自定义回调。SurfaceView不是为与其他小部件合成而设计的,因此您唯一的选择是自己解码预览并在屏幕外合成它,然后将其绘制到您自己的屏幕小部件(可以是SurfaceView)


有关如何进行屏幕外合成的示例,请参见此应用程序,在本例中,将OpenGL图形与相机预览相结合。您应该能够根据需要调整源代码。

谢谢您的回答,我试图在手机上运行您的代码,但它引发了一个异常:02-08 12:17:40.207:E/AndroidRuntime(3738):nz.gen.geek_central.Compass3D.eglusive$EGLException:EGL创建Pbuffer曲面失败,错误为12288无论如何,我用OpenGLES做过类似的事情。我知道如何绑定相机预览,我只需要画一个框,里面有图片中的文本,而在“OnDraw”方法中,我不知道怎么做,就像在预览底部干杯一样。你能给我举一个用OpenGLES画出我所要的东西的例子吗?。谢谢你的帮助!