android - 如何在android中创建圆角videoview?

标签 android android-videoview rounded-corners

在我的应用程序中,我想将 videoview 显示为圆角。我尝试将 videoview/surfaceview 放置在 linearlayout 中,并将圆角设置为 linearlayout。但它不能完美地工作。我无法将圆角设置为 videoview/surfaceview。我想将 View 设置为下图: enter image description here

有人知道怎么做吗?

最佳答案

当解决方案非常简单时(只要您的 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/

相关文章:

java - 如何应对 WP-API 的 GET 和 POST JSON 方案的差异

java - 将实时视频从 Raspberry Pi 流式传输到我的 Android 应用程序但出现安全异常

Android ListView 主题

Android:无法使用委托(delegate)证书建立 HTTPS 连接

android - 当我在 ListView 中滚动后单击一行时,为什么会出现 CheckedTextView 的 NullPointerException?

android - 同时流畅地一个接一个地播放视频 [没有明显的从一个视频切换到另一个视频]

ios - 我正在尝试使用圆角半径来查看放置在 UITableView 内的内容。这对我不起作用

iPhoneOS SDK - 从 View 中删除圆角(iPad 问题)

android - 应用程序及其加载的服务是否只有一个 PID

Android 显示 MediaController