我想在Android系统上创建相机预览。我也想让它透明50%。这就是问题所在。 <{1}}在我使用时对我不起作用。
这是我的服务,我用它将SurfaceView添加到窗口:
setAlpha
答案 0 :(得分:4)
SurfaceView有两个部分,Surface和View。调用视图的setAlpha()
方法只会影响在视图上绘制的内容,这对您没有帮助,因为相机帧正在发送到Surface。
Surface是一个独立的层。目前的API并没有提供一种设置&#34;平面alpha&#34;的方法,因此您只需获得像素值所具有的任何值。对于相机和视频输出,YUV-RGB转换始终生成完全不透明的像素。
要做你想做的事,你需要将相机预览发送到SurfaceTexture,它将帧转换为OpenGL ES&#34;外部&#34;质地。然后,您可以将其渲染到部分透明的四边形上。这是一项相当多的工作,但是一旦你开始工作,你可以使用实时相机图像做任何事情(比如将它包裹在球体周围或发送它在屏幕上弹跳)。
一个简单的例子可以在#34;来自相机的纹理中找到#34; Grafika中的活动。