tis*_*shu 2 java camera android overlay surfaceview
我有一个包含两个SurfaceViews的FrameLayout.其中一个将显示相机预览,另一个是我用于绘图的自定义表面视图.问题是表面视图没有显示出来.如果我注释掉相机开始预览的行,它会在黑色背景上显示.这表明我的Surface视图定位良好,但我怀疑当相机预览绘制时出现问题.
相机视图:
public CameraView(Context context, AttributeSet a) {
super(context, a);
mHolder = getHolder();
mHolder.addCallback(this);
mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}
Run Code Online (Sandbox Code Playgroud)
自定义视图:
public InclinaisonGauge(Context context, AttributeSet attrs) {
super(context, attrs);
getHolder().addCallback(this);
getHolder().setFormat(PixelFormat.TRANSLUCENT);
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
run = true;
updateThread = new Thread()
{
public void run()
{
Canvas c = null;
final SurfaceHolder inclHolder = getHolder();
while (run) {
try {
c = inclHolder.lockCanvas();
if(c!=null)
{
synchronized (inclHolder) {
onDraw(c);
}
}
} finally {
// do this in a finally so that if an exception is thrown
// during the above, we don't leave the Surface in an
// inconsistent state
if (c != null) {
inclHolder.unlockCanvasAndPost(c);
}
}
}
}
};
Run Code Online (Sandbox Code Playgroud)
我在自定义视图上使用这个非常简单的绘制方法,以确保它不是帧速率问题
public void doDraw(final Canvas canvas, final boolean bigSize, float daDirection)
{
canvas.drawARGB(255, 255, 255, 255);
}
Run Code Online (Sandbox Code Playgroud)
有没有人经历过这个?
谢谢
好吧,如果有其他人得到这个,解决方法是在surfaceView上调用它
this.setZOrderMediaOverlay(true);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5660 次 |
最近记录: |