在CameraPreview上绘制文字(Android)

时间:2012-02-08 00:03:57

标签: android text opengl-es camera

基本上我可以使用View:

在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);

    } 

}

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

http://www.lemacinaie.it/amiata/wp-content/uploads/2011/07/realta_aumentata.jpg

我想达到同样的目的,我尝试过没有成功的话语......任何人都可以帮忙吗?谢谢。

编辑:我能够在GLSurfaceView中绑定camerapreview,我只需要知道如何在OpenGLES中绘制一个带有文本的框,就像吐司一样。感谢

1 个答案:

答案 0 :(得分:0)

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

有关如何进行离屏合成的示例,请参阅此3D-Compass应用,在这种情况下,OpenGL图形与相机预览相结合。您应该能够根据需要调整源代码。