我在onDraw里调用了canvas.drawVertices方法,然后想在别的方法里保存这个canvas的图片,请问怎么实现呢

解决方案 »

  1.   

    canvas定义成全局变量,整个类不就都可以用了。public static Canvas canvas 整个应用都可以用的!不知道楼主是不是这个意思,
      

  2.   

    那两个canvas不一样的吧,在全局定义的canvas保存的图片和onDraw里的canvas不一样吧
      

  3.   

    1。 用SurfaceView, 随时可以获取Canvas.  Canvas c = lockCanvas();或者2。 onDraw时绘制到Canvas时,申请一个新Canvas,它绑定到一个Bitmap上,
    绘制完后,你要的结果都在Bitmap上,然后把Bitmap在绘制到onDraw的Canvas上。
      

  4.   


    谢谢回答,可是问题是SurfaceView会增加复杂性,而onDraw如果每次都new Canvas,不是会很没效率吗
      

  5.   


    因为我这里每onDraw的频率相当高,我会在用户触摸屏幕的时候调用onDraw改变图片,然后想在一个方法里保存改变后的图片,这个方法必须获得改变后的图片的canvas才行,因为我使用的是drawVertices,所以没有办法直接保存初始的bitmap,因为这样保存的都是未修改的原图片。 
    请问,能帮帮我吗,谢谢