gpt4 book ai didi

java - 当 Canvas 表面 View 位于另一个 Canvas 之上时,无法将其圆角化

转载 作者:行者123 更新时间:2023-12-02 09:42:06 27 4
gpt4 key购买 nike

我创建了一个应用程序,其中将显示 2 个视频流,它们应该一个在另一个之上,并且顶部应该有圆形边缘。我使用 CardView 使 SurfaceView 的边缘变圆,在关闭下部视频流时它会有所帮助。

一旦打开下部视频流,上部视频流的圆角就会消失,并再次变为矩形,其中另一个流的 Canvas 位于下方。当一个流在另一个流之上播放时,如何确保边缘不会再次变直?

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

我还尝试制作自定义 Canvas ,但我实现的唯一目标是在矩形周边周围用白色框架进行舍入,我需要确保没有框架。

超出底部 Canvas 的边缘是圆形的: enter image description here

所有边缘都在另一个 Canvas 上并且不是圆形的: enter image description here

最佳答案

我以前做过类似的事情,据我记得,如果你要将 SurfaceView 之一切换到TextureView,它就会起作用。这是因为 SurfaceView 的工作方式与其他 View 不同,它基本上是一个透明 View ,可以让您看到其他渲染层,而 TextureView 和 SurfaceView 的工作方式有点不同。

关于java - 当 Canvas 表面 View 位于另一个 Canvas 之上时,无法将其圆角化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56988557/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com