【问题标题】:Android VideoView on a Translucent Activity半透明活动上的 Android VideoView
【发布时间】:2013-06-27 14:54:19
【问题描述】:

我有一个正在工作的应用程序,我在一个活动中使用 VideoView,同时为该活动设置半透明(透明)的主题:android:theme="@android:style/Theme.Translucent.NoTitleBar.全屏”

但是,我注意到 videoView 的奇怪行为 - 在视频开始播放(它是自动播放)之前的一瞬间,videoView 本身是透明的,您可以看到它背后的活动。作为参考,有问题的活动包含其他元素,并且视频被加框。

在视频开始之前,有没有办法让这个黑色甚至覆盖帧的自定义图像?

videoView.setBackgroundColor 有问题,实际上改变了前景色并在播放时保持帧的颜色......

感谢您的宝贵时间!

【问题讨论】:

  • 你好@djxstream - 你解决了这个问题吗?谢谢!

标签: android video transparency android-videoview


【解决方案1】:
videoView.setZOrderOnTop(true);

SurfaceView(和 VideoView 作为子类)默认放置在窗口后面。所以你应该调用: videoView.setZOrderOnTop(true) 如果你想把它放在上面(使它不透明)。

【讨论】:

  • > 控制表面视图的表面是否放置在其窗口的顶部。通常它被放置在窗口的后面,以允许它(在大多数情况下)看起来与层次结构中的视图复合。通过设置它,您可以将其放置在窗口上方。这意味着此 SurfaceView 所在窗口的任何内容都不会在其表面上可见。 > 请注意,这必须在表面视图的包含窗口附加到窗口管理器之前设置。 developer.android.com/reference/android/view/…
  • 虽然此代码块可能会回答问题,但请尝试通过相关解释改进您的答案。见stackoverflow.com/help/how-to-answer
  • SurfaceView(和 VideoView 作为子类)默认放置在窗口后面。所以你应该打电话: videoView.setZOrderOnTop(true) 如果你想把它放在上面(使它不透明)。
  • @anonymous :最好在答案中发布内容而不是评论。
【解决方案2】:

您可以用另一个 View 覆盖 ViewView,然后一旦视频播放开始,您就可以为这个 View 设置动画,比方说快速将其 alpha 更改为 0.0。

【讨论】:

  • 我在改进之前尝试了类似的方法,但仍然很明显。感谢您的意见。
【解决方案3】:

请阅读其他 SO 线程中的this 响应,我认为这是解决此问题的方法,至少它对我有用

【讨论】:

    猜你喜欢
    • 2012-06-27
    • 2017-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多