求Android上用Paint实现画图板的程序,要实现可以擦除或者后退前进操作的功能,或者那个高手能提供以下思路?
是建立很多张缓存的Bitmap,每一次touch事件的down up 保存一张图片吗?这样做如果画的操作很多的话,缓存的Bitmap会很多的。有木有好的做法?

解决方案 »

  1.   

    1. 不需要缓存多张bitmap,一张就够。
    2.你需要记录的数据是,touch事件的坐标值{x,y}序列,每次从down到up都会产生一个序列,保存一个数组。再将所有序列保存到另外一个集合数组。用直线把各点依次连起来。
    3.额外的数据是线的粗细和颜色,阴影,透明等其他效果的参数。
      

  2.   

    可以参考
    http://blog.csdn.net/meshless/article/details/6912892
      

  3.   

    我昨晚想到一个办法就是记录每一次move up画的那条path还有相对应的paint,用两条ArrayList来记录,但没实现。
    关于那个橡皮擦功能,我做法是用一张背景为透明的缓冲图,在上面画线后擦除时,把画笔改成经过区域为背景颜色,最后把原图和缓冲图叠加。但是叠加出来效果有点不好,原来的线虽然可以擦掉,但是擦过的地方颜色变浅了,有谁知道为什么吗?
    http://hi.baidu.com/hbzha/blog/item/7f92d69afb0775a3c9eaf49f.html
    参考的是上面链接的这个做法