Canvas - zooming in, shifting, and scaling on Android

前端 未结 5 991
广开言路
广开言路 2020-12-24 00:34

I\'m currently implementing a draw function on a webview image (the elephant below). I don\'t have a problem drawing on it but the zoom function does some funky stuff (2nd i

5条回答
  •  谎友^
    谎友^ (楼主)
    2020-12-24 01:03

    Can you try to draw paths only one time, and keep the zooming the responsibility of the canvas itself

    private boolean pathsDrawn;
    
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        clipBounds = canvas.getClipBounds();
        canvas.save();
        drawPaint.setStrokeWidth(8/mScaleFactor);
        canvas.scale(mScaleFactor, mScaleFactor, 0, 0);
    
        if(!pathsDrawn) {
           canvas.drawPath(drawPath, drawPaint);
           pathsDrawn = true;
        }
        canvas.drawBitmap(canvasBitmap, 0, 0, canvasPaint);
        canvas.restore();
    }
    

提交回复
热议问题