我已经使用example guide创建了一个名为CameraPreview的类,该类继承自SurfaceView类,并显示摄像机预览.我还创建了另一个名为DrawOnTop的自定义视图类,该类直接从View继承,我用它在预览顶部绘制文本和其他项目.每个视图类都可以正常工作,但是当我将两个视图都加载到活动中时,CameraPreview始终占主导地位,而DrawOnTop类中的任何对象或文本都不会出现在相机预览的顶部.
因为我使用的是两个自定义视图类,所以我不必费心在活动的onCreate中从XML扩展任何视图类,因此onCreate不包含对setContentView(…)的任何调用.相反,我实例化每个视图类,并使用addContentView(…)将每个视图对象加载到活动的根视图中,即
CameraPreview preview = new CameraPreview(this);
addContentView(preview, new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT));
DrawOnTop drawontop = new DrawOnTop(this);
addContentView(drawontop, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
drawontop.setVisibility(View.VISIBLE);
drawontop.bringToFront();
我看了活动的根视图,结果发现它是FrameLayout类型的.就像我在上面说的那样,这种方法对于每个视图都适用.
为了使DrawOnTop类出现在相机预览的顶部,我尝试使用BringToFront(),但是它没有任何作用.我正在运行Android版本4.1.1的Samsung Galaxy Note 2 LTE上测试该应用程序.
谁能告诉我我在做什么错?