我有一个FrameLayout包含第一个SurfaceView,第二个是RelativeLayout,它依次连接各种Button和TextViews。Android:SurfaceView和Z-Level问题
在SurfaceView的画布上,我绘制了许多位图,并且通过触摸和动作事件允许用户拖动它们。
这些位图在拖动时通过下方的位于RelativeLayout内部的按钮等。
现在,我的(可能是错误的)了解,即SurfaceView的“Z-level”或任何它所传递给它的内容完全与其余布局的Z级别无关。是这样吗?如果是这样,我该如何解决这个问题,以便拖动位图被绘制在其他视图的顶部?或者还有什么其他方式可以实现全屏画布,但没有我的按钮等,就像叠加层的控件一样。
我想我实际上需要的是底层,其中触摸事件仍然可以通过下方的按钮等拾取。但我不知道如何实现这一点,因为在重画Canvas时,我也必须重绘背景。
我可以交换在FrameLayout中的RelativeLayout和SurfaceView的顺序,然后使Canvas的背景透明吗?如果是这样如何?触摸事件是否会“落在”下面的按钮?
感谢您的支持与我,我知道我有点华夫。
嗨,谢谢你的回复。 当拖动位图时,它会在MotionEvent期间留下自己的重绘副本的痕迹,除非在绘制所述位图的当前位置之前将Canvas背景设置为比如COLOR.Black。所以,是的,SurfaceView/Canvas有一个背景。 – JimBadger 2011-01-12 14:41:26