2013-11-26 4 views
1

Я хочу отображать сетку при использовании камеры на устройстве Android. Один мог бы ее увидеть, если раньше вы использовали instagram. Что-то вроде изображенного ниже. Как я могу реализовать его в своем коде для своего приложения .please предоставит некоторую полезную ссылку , предложения или учебники для них.Сетка дисплея при использовании камеры устройства в Android.

Заранее спасибо :)

enter image description here

ответ

0

Использование SurfaceView для отображения видео, проверить эту link, например; как взять видео и следующий код для того, как создать пользовательский SurfaceView для отображения сетки.

class MySurface extends SurfaceView implements SurfaceHolder.Callback, 
     PreviewCallback { 

    public MySurface(Context context) { 
     super(context); 
     // TODO Auto-generated constructor stub 
    } 

    @Override 
    public void draw(Canvas canvas) { 
     super.draw(canvas); 

     // TODO draw grid 
    } 

    @Override 
    public void onPreviewFrame(byte[] data, Camera camera) { 
     // TODO handle camera frames 

    } 

    @Override 
    public void surfaceCreated(SurfaceHolder holder) { 

     initCamera(); 
    } 

    @Override 
    public void surfaceChanged(SurfaceHolder holder, int format, int width, 
      int height) { 

     mCamera.startPreview(); 
    } 

    @Override 
    public void surfaceDestroyed(SurfaceHolder holder) { 

     releaseCamera(); 
    } 
} 
1

вы можете перезаписать OnDraw метод и использовать ..

 Paint redPaint = new Paint(); 
      redPaint.setColor(Color.WHITE); 
      redPaint.setStyle(Paint.Style.STROKE); 
     canvas.drawLine((canvas.getWidth()/2)-size-20, (canvas.getHeight()/2)-size-20, (canvas.getWidth()/2)-size-20, (canvas.getHeight()/2)+size+20, redPaint); 
     canvas.drawLine((canvas.getWidth()/2)+size+20, (canvas.getHeight()/2)-size-20, (canvas.getWidth()/2)-size-20, (canvas.getHeight()/2)-size-20, redPaint); 
     canvas.drawLine((canvas.getWidth()/2)-size-20, (canvas.getHeight()/2)+size+20, (canvas.getWidth()/2)+size+20, (canvas.getHeight()/2)+size+20, redPaint); 
     canvas.drawLine((canvas.getWidth()/2)+size+20, (canvas.getHeight()/2)+size+20, (canvas.getWidth()/2)+size+20, (canvas.getHeight()/2)-size-20, redPaint); 
     canvas.drawLine((canvas.getWidth()/2)-(size/60), (canvas.getHeight()/2)-size-20, (canvas.getWidth()/2)+(size/60), (canvas.getHeight()/2)+size+20, redPaint); 
     canvas.drawLine((canvas.getWidth()/2)+size+20, (canvas.getHeight()/2)-(size/60), (canvas.getWidth()/2)-size-20, (canvas.getHeight()/2)-(size/60), redPaint); 
+0

, что должно быть по размеру? –

Смежные вопросы