我按该顺序将 a cameraView
、 aglSurfaceView
和 an添加ImageView
到 a relativeLayout
,但结果是它们从上到下排序(cameraView
, imageView
, glSurfaceView
)有什么具体原因吗?是因为glSurfaceView
内部重绘了它的自我吗?
添加的代码片段:
rel.addView(glView);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM,1);
params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
params.rightMargin = 20;
// add Camera to view
rel.addView(camPreview, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
rel.addView(glView);
rel.addView(imageView,params);
问题真的是..我怎么能保证 imageView 总是在最前面
我认为该GLSurfaceView's
onDrawFrame
方法将GlSurfaceView
置于视图列表的顶部,因此我从 onDrawFrame 方法中添加了对 mainActivity 上的公共方法的回调,如下所示:
public void ajustOverlay(){
imageView.bringToFront();
Log.v("parent: ", "ajust overlay");
}
这似乎仍然没有保持imageView
领先地位