基本上我可以使用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中绘制一个带有文本的框,就像吐司一样。感谢
答案 0 :(得分:0)
相机预览可以转到SurfaceView,也可以以编码形式提供给您指定的自定义回调。 SurfaceViews不是为与其他小部件合成而设计的,因此您唯一的选择是自己解码预览并将其合成到屏幕外,然后再将其绘制到您自己的屏幕小部件(可以是SurfaceView)。
有关如何进行离屏合成的示例,请参阅此3D-Compass应用,在这种情况下,OpenGL图形与相机预览相结合。您应该能够根据需要调整源代码。