Java Can';当画布位于另一个画布上时,请查看画布表面

Java Can';当画布位于另一个画布上时,请查看画布表面,java,android,canvas,kotlin,surfaceview,Java,Android,Canvas,Kotlin,Surfaceview,我创建了一个应用程序,其中将显示两个视频流,它们应该是一个在另一个之上,一个应该在顶部有圆形边缘。我使用了cardwiew来环绕SurfaceView的边缘,它在关闭较低的视频流时很有帮助 一旦打开下部视频流,上部视频流的角的圆角将消失,并且在另一个视频流的画布的下方,它再次变成矩形。当一条流在另一条流上播放时,如何确保边缘不再笔直 我试图以不同的顺序将SurfaceView放入FrameLayout,为SurfaceView或CardView设置不同的背景,仅包括白色或透明背景,以及带有剪切边

我创建了一个应用程序,其中将显示两个视频流,它们应该是一个在另一个之上,一个应该在顶部有圆形边缘。我使用了
cardwiew
来环绕
SurfaceView
的边缘,它在关闭较低的视频流时很有帮助

一旦打开下部视频流,上部视频流的角的圆角将消失,并且在另一个视频流的
画布的下方,它再次变成矩形。当一条流在另一条流上播放时,如何确保边缘不再笔直

我试图以不同的顺序将SurfaceView放入
FrameLayout
,为
SurfaceView
CardView
设置不同的背景,仅包括白色或透明背景,以及带有剪切边的矩形视图,设置
cardCornerRadius
参数时-
SurfaceView
仍超出
CardView
。cardPreventCornerOverlap参数也没有效果

我也试着做一个自定义画布,但我唯一能做到的就是在矩形的周边用一个白色的框架围起来,我需要确保没有框架

延伸到底部画布之外的边是圆形的:

其他画布上的所有边,且未圆化:

据我记忆所及,我以前做过类似的事情,如果您将其中一个SurfaceView切换到TextureView,它会工作的。 这是因为SurfaceView的工作方式与其他视图不同,它基本上是一个透明视图,可以让您查看其他渲染层,而TextureView和SurfaceView的工作方式略有不同