Android:无法将 VideoView 背景设置为透明

标签 android android-videoview alpha-transparency

我有一个 VideoView 正在播放一个形状不是矩形的视频(即带圆角的旋转圆柱体)。视频 View 显示在具有背景颜色的 LinearLayout 中。我希望 videoview 的背景是透明的,以便产生圆柱体在背景颜色之上旋转而没有任何黑角的效果。 这就是我得到的:current result

这就是我想要得到的:enter image description here

当然,你可能会问,为什么我不直接设置视频的背景颜色来匹配容器的背景颜色,但我要实现这一点的原因是因为我的下一步是要有一个图像或作为容器背景的图案。我的布局 xml 如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#00aaff"
    android:orientation="vertical" >

    <VideoView
        android:id="@+id/surface_view"
        android:layout_width="254dp"
        android:layout_height="200px" />

</LinearLayout>

在试验时,我尝试为视频 View 设置背景,但结果是完全遮住了视频 View 。

谢谢。

最佳答案

VideoView 正在当前窗口上方打开一个单独的窗口。这是因为它基于 SurfaceView。我们无法设置 alpha 或使用它执行动画,因为它未与您的其他 UI 元素同步。

所以: 您应该使用基于 TextureView 的视频播放器,并通过“设置 alpha”到 TextureView 来动画透明背景 您可以使用这些库并获得基于 TextureView 的视频播放器

关于Android:无法将 VideoView 背景设置为透明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20720464/

相关文章:

android - 维塔米奥 libffmpeg.so

安卓 2.2 : Problem playing video from SD card

linux - Matlab 中的 AlphaData 替代方案

android - 从 native 代码读取 Android 相机设备,无需 root

使用 Cell Tower 的 Android 位置

android - AOSP repo manifest 分支名称困惑。去 rev## 或 mr1?

Android - 播放完成后无法隐藏 VideoView

java - 仅使用 API 将灰度图像绘制到另一个 BufferedImage 的 alpha 带

java - 如何在不单击发送按钮的情况下向特定联系人发送 Whatsapp 消息