Android库重叠矩形消失

时间:2017-01-09 19:54:25

标签: android camera overlay

我有一个显示相机预览的库。我想在预览的顶部添加一个矩形叠加层。我尝试了两种不同的方法。但是他们两个都很快显示出矩形然后就消失了。

  1. 方法(使用view.getOverlay)

    mPreview.setZOrderMediaOverlay(true);
    mPreview.setZOrderOnTop(true);
    ViewGroup rootView = (ViewGroup)mActivity.getWindow().getDecorView().findViewById(android.R.id.content);
    rootView.addView(mPreview);
    
    final ViewOverlay overlay = mPreview.getOverlay();
    final Bracket bracket = new Bracket();
    mPreview.post(new Runnable() {
        @Override
        public void run() {
            bracket.setBounds(0, 0, mPreview.getWidth(), mPreview.getHeight());
            overlay.add(bracket);
        }
    });
    
  2. 逼近(覆盖surfaceview中的绘制函数)

    @Override
    public void draw(Canvas canvas) {
        super.draw(canvas);
    
        paint.setStyle(Paint.Style.STROKE);
        paint.setColor(Color.GREEN);
        paint.setStrokeWidth(10);
    
        //center
        int x0 = canvas.getWidth()/2;
        int y0 = canvas.getHeight()/2;
        int dx = canvas.getHeight()/3;
        int dy = canvas.getHeight()/3;
        //draw guide box
        canvas.drawRect(x0-dx, y0-dy, x0+dx, y0+dy, paint);
    }
    
  3. mPreview扩展了SurfaceView

    支架扩展Drawable

    更新

    如果我使用setContentView而不是rootView.addView,它会按预期工作。但在这种情况下,我无法删除视图。

1 个答案:

答案 0 :(得分:0)

我使用了新的ActivitysetContentView。这解决了这个问题。 要删除视图finish,请执行操作。