我有一个 VideoView 正在播放一个形状不是矩形的视频(即带圆角的旋转圆柱体)。视频 View 显示在具有背景颜色的 LinearLayout 中。我希望 videoview 的背景是透明的,以便产生圆柱体在背景颜色之上旋转而没有任何黑角的效果。 这就是我得到的:
这就是我想要得到的:
当然,你可能会问,为什么我不直接设置视频的背景颜色来匹配容器的背景颜色,但我要实现这一点的原因是因为我的下一步是要有一个图像或作为容器背景的图案。我的布局 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/