【问题标题】:SurfaceView transparency problemSurfaceView透明度问题
【发布时间】:2013-12-31 20:09:14
【问题描述】:

我有这个问题:我在框架布局中添加了两个视图实例。第一个视图是循环播放视频的 VideoView。第二个视图位于视频视图之上,是一个表面视图。 surfaceview 绘制了一些 .png 的白色矩形,它需要屏幕的一小部分。不需要的部分必须是透明的。为了做到这一点,我使用了接下来的代码行(surfaceview implemnts SurfaceHolder.Callback):

setZOrderOnTop(true);
getHolder().setFormat(PixelFormat.Transparent);

问题是我想让白色矩形半透明,以便看到 videoview 播放的电影。透明效果在surfaceview的未使用部分上工作正常,但矩形没有变成半透明(如果我为surfaceview绘制背景,效果变得可见。)我等待你们的解决方案。Thx

【问题讨论】:

  • 你为你的白色矩形画设置了paint.setAlpha(0.5f) 吗?
  • 对不起,你是个天才……:P

标签: android transparency surfaceview


【解决方案1】:

也许 SurfaceHolder 不允许使用 alpha。你检查过 PixelFormat.formatHasAlpha() 的结果吗?或者您是否尝试过显式设置 PixelFormat.RGBA_4444、RGBA_5551 或 RGBA_8888 看看会发生什么?

【讨论】:

  • 是的,返回是真的。我也使用了你建议的像素格式,但不起作用
【解决方案2】:
mVideoView.setZOrderOnTop( true );
getHolder().setFormat( PixelFormat.RGBA_8888 );

为我工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-29
    • 2013-01-24
    • 2013-06-21
    • 2011-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多