为了账号安全,请及时绑定邮箱和手机立即绑定

Android自制了一个画图工具,为什么越画越慢,如何解决重绘变慢问题。

Android自制了一个画图工具,为什么越画越慢,如何解决重绘变慢问题。

atomweapon 2017-05-16 06:52:10
用的是SurfaceView 的一个自定义View, 在开启线程之后,每次手绘都要重绘制Canvas。  然后随着手绘的线条越来越多,速度变得越来越慢,因为重绘制的线条也越来越多。    public void OnChange(){         canvas=getHolder.lockCanvas();         canvas.drawColor(Conlor.WHITE);         if(!list.isEmpty()){         for(int i=0;i<list.size();i++){                 Map<String,Object> map=(Map)list.get(i);                 .....                                  canvas.drawCircle(x,y,10,paintL);                 canvas.drawLine(x,y,,x1,y110,paint);                             }         }     }如何解决 绘制的越来越慢的问题。
查看完整描述

1 回答

?
Stardust1001

TA贡献261条经验 获得超78个赞

不能不清除画布吗?
查看完整回答
反对 回复 2017-05-19
  • atomweapon
    atomweapon
    public void OnChange(){ canvas=getHolder().lockCanvas(); canvas.drawColor(Color.WHITE); if(!list.isEmpty()){ for(int i=0;i<list.size();i++){ Map<String,Object> map=(Map)list.get(i); int color=(int)map.get("color"); float x=(float)map.get("X"); float y=(float)map.get("Y"); float x1=(float)map.get("X1"); float y1=(float)map.get("Y1"); paintL.setColor(color); paint.setColor(color); canvas.drawCircle(x,y,10,paintL); canvas.drawLine(x,y,x1,y1,paint); } } getHolder().unlockCanvasAndPost(canvas); } 好像不行。
  • 1 回答
  • 0 关注
  • 1624 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信