2017-01-09 46 views
0

我有一個顯示相機預覽的庫。我想在預覽頂部添加一個矩形疊加層。我嘗試了兩種不同的方法。但他們都很快顯示矩形然後消失。 (使用view.getOverlay)Android庫重疊矩形消失

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); 
    } 
}); 
  • 方法(覆蓋在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); 
    } 
    
  • mPreview延伸SurfaceView

    支架延伸繪製對象

    1. 方法

      UPDATE

      如果我使用的setContentView代替rootView.addView它按預期工作。但在這種情況下,我無法刪除視圖。

    +0

    您可以在SurfaceView上添加一個imageView - 即使在您的xml中! –

    回答

    0

    我用了一個新的ActivitysetContentView。這解決了問題。 刪除視圖I finish編輯該操作。