在我的应用程序中,我想将 videoview 显示为圆角。我尝试将 videoview/surfaceview 放置在 linearlayout 中,并将圆角设置为 linearlayout。但它不能完美地工作。我无法将圆角设置为 videoview/surfaceview。我想将 View 设置为下图:
有人知道怎么做吗?
最佳答案
当解决方案非常简单时(只要您的 min sdk > 21),我不确定为什么会有这么多错误的答案。创建一个形状并将其放在视频上方是行不通的,因为您显然希望背景透明以查看其背后的 View 。
我在这里找到了答案Android View Clipping .您只需将视频 View 放在框架布局中,将圆形背景添加到框架布局,添加轮廓提供者并将框架布局剪辑到轮廓。
背景rounded_video_background
:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#000000"/>
<corners android:radius="16dp" />
</shape>
其中的框架布局和视频 View :
<FrameLayout
android:id="@+id/video_view_container"
android:layout_width="90dp"
android:layout_height="120dp"
android:background="@drawable/rounded_video_background"
android:outlineProvider="background">
<VideoView
android:id="@+id/video_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
/>
</FrameLayout>
最后一步是剪裁到轮廓(没有看到在 xml 中执行此操作的方法,所以我以编程方式执行):
video_view_container.clipToOutline = true
关于android - 如何在android中创建圆角videoview?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17148018/