使用SurfaceView防止绘图超出画布

Lum*_*mis 5 android surfaceview android-canvas

是否有办法防止物体的部位的拉伸,如位图或路径,从而超越边界Canvas的SurfaceView?

当我逐渐将物体放大到超过Canvas'尺寸,特别是油漆模糊时,它都会减速到静止状态,我必须等待几秒才能恢复控制 - 它没有响应.我通过在屏幕上移动手指来缩放对象; 如果我做得太快并且扩展它,那么它真的会减慢绘图速度.

使用普通View画布时我没有遇到同样的问题,所以不知道是什么减慢了它.就好像SurfaceView响应太快然后变得拥挤.

因此,改进这一点的一个想法是防止在画布外画画,但不确定是否SurfaceView有这样的剪辑选项.

Tre*_*vor 1

一种解决方案可能是使用Canvas .drawBitmap接受源Rect/参数的方法之一,以便仅渲染RectF可见部分。Bitmap我刚刚在自己的项目中完成了此操作,以提高SurfaceView性能,其中有几个项目Bitmaps有时只能部分查看。