我的想法是拥有两个surfaceViews。一个SurfaceView将容纳图像(例如ImageSurgaceView),第二个表面位于第一个表面上,该第一个表面包含注释(例如AnnotationSurfaceView),例如圆形,矩形等。现在,我必须映射这些表面 View ,以使高度,宽度相同,而且两个表面 View 都应在拖动时移动,即共享触摸事件。确切地说,当我向上移动图像时,注释也应该向上移动。

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

感谢您的帮助。

最佳答案

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

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

最后,只需设置一个自定义的OnTouchListener即可处理拖动事件。使用MotionEvent.getRawX()MotionEvent.getRawY()获取接触点,并使用它来操纵 Canvas 。

10-08 11:16