2011-08-29 168 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); 

爲我工作。