显然,使用背景形状在VideoView的情况下不起作用 此外,还有很多文章如何为ImageView重写onDraw并使其角落成为圆角。
但我如何为VideoView做到这一点?
答案 0 :(得分:6)
根据文档中的说明,无法使用VideoView
或任何SurfaceView
进行透明圆角处理:
表面是Z有序的,因此它位于保持SurfaceView的窗口后面; SurfaceView在其窗口中打孔以允许其表面显示。
使用TextureView
似乎理论上可行,因为它应该表现得像普通视图。但是我也无法做到:尝试TextureView
图层绘制的Porter Duff模式和父ShapeDrawable
前景中的FrameLayout
。
使用VideoView
,您可以做的是制作纯色的角落。使用带有透明内容的9补丁和纯色的角落,并将其设置在最先绘制的ImageView
上。
修改:检查this示例项目。
答案 1 :(得分:0)
我认为没有简单的方法可以做到这一点。你可以试试这个例子:
答案 2 :(得分:0)
通过将TextureView放在CardView内(来自支持库),可以轻松实现此效果。
然后您可以在CardView上设置拐角半径和阴影:
<androidx.cardview.widget.CardView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:cardCornerRadius="12dp">
<TextureView
android:id="@+id/video"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</androidx.cardview.widget.CardView>