Android:是否可以将两个surfaceview相互叠加?

时间:2013-08-21 13:32:15

标签: android surfaceview

我的想法是有两个surfaceViews。一个surfaceView将保存一个图像(比如ImageSurgaceView),第二个表面位于第一个保存注释(比如AnnotationSurfaceView)的顶部,如圆形,矩形等。现在我必须映射这些表面视图,使其高度,宽度是相同的,而且,表面视图应该在拖动时移动,即共享触摸事件。确切地说,当我向上移动图像时,注释也应该向上移动。

现在,我不确定这在Android中是否可行。任何人都可以告诉或分享这方面的一些信息。我没有任何实现想法,因此我没有任何具体的代码。而且,我找不到类似的东西。

感谢您的帮助。

1 个答案:

答案 0 :(得分:21)

是的,这是可能的。您可以将SurfaceView添加为FrameLayout的子项。您还需要在SufaceView中的一个或两个上致电setZOrderMediaOverlay,以指定它们的分层方式。

此外,这可能是您正在描述的图形密集型算法。请考虑添加AndroidManifest.xml 应用属性android:hardwareAccelerated="true"

最后,只需设置自定义OnTouchListener即可处理拖动事件。使用MotionEvent.getRawX()MotionEvent.getRawY()获取触摸点,并使用此操作来操作画布。