2011-08-29 170 views
1

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

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

的问题是,我想使白色矩形半透明为了看到由videoview播放的电影。透明度效果在表面视图的未使用部分上工作正常,但矩形不会变成半透明(如果ai绘制背景以使Surfaceview效果变得可见)。我等待你们的解决方案从我们这里开始.Thx

+0

你为你的白色矩形涂料设置了paint.setAlpha(0.5f)吗? – Lumis

+0

对不起,它工作,你是一个天才...:P –

回答

0

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

+0

是的,回报是真实的。我也使用了你建议的像素格式,不起作用 –

0
mVideoView.setZOrderOnTop(true); 
getHolder().setFormat(PixelFormat.RGBA_8888); 

为我工作。