2013-01-16 59 views
1

Android开发新手,我的应用程序是用多种颜色从颜色选择器中选择画布(具有位图)的绘制路径。之前绘制的路径颜色正在使用画布上的新路径颜色进行更新。任何在帮助我,这是我的代码.........画布上用多种颜色绘制线条

@Override 
public void run() { 
    // TODO Auto-generated method stub 
    while (locker) { 
     canvas = null; 
     try { 
      if (!holder.getSurface().isValid()) { 
       continue; 
      } 
      canvas = holder.lockCanvas(); 

      draw(canvas); 

     } finally { 
      if (canvas != null) { 
       holder.unlockCanvasAndPost(canvas); 
      } 
     } 
    } 
} 

@Override 
public boolean onTouchEvent(MotionEvent event) { 
    // synchronized (thread.getSurfaceHolder()) { 
    if (event.getAction() == MotionEvent.ACTION_DOWN) { 
     path = new Path(); 
     path.moveTo(event.getX(), event.getY()); 
     path.lineTo(event.getX(), event.getY()); 
    } else if (event.getAction() == MotionEvent.ACTION_MOVE) { 
     path.lineTo(event.getX(), event.getY()); 
    } else if (event.getAction() == MotionEvent.ACTION_UP) { 
     path.lineTo(event.getX(), event.getY()); 
     paths.add(path); 
    } 
    return true; 
    // } 
} 

/** 
* This method deals with paint-works. Also will paint something in 
* background 
*/ 
private void draw(Canvas canvas) { 
    Bitmap bitmap = BitmapFactory.decodeResource(getResources(), 
      R.drawable.bell); 
    // canvas.drawColor(Color.CYAN); 
    canvas.drawBitmap(bitmap, 20, 20, mPaint); 
    // canvas.drawPath(mPath, mPaint); 
    for (Path path : paths) { 
     // canvas.drawPoint(graphic.x, graphic.y, mPaint); 
     canvas.drawPath(path, mPaint); 
    } 
} 

}

+0

http://stackoverflow.com/questions/3616676/how-to-draw-a-line-in-android –

回答

0

你需要记住每一个路径它与绘制的颜色。例如,你可以有一个颜色列表(整数),与路径列表同时填充。然后在你的抽签方法做到这一点:

private void draw(Canvas canvas) { 
    Bitmap bitmap = BitmapFactory.decodeResource(getResources(), 
      R.drawable.bell); 
    canvas.drawBitmap(bitmap, 20, 20, mPaint); 

    int count = path.size(); 
    for (int i = 0; i < count; i++) { 
     mPaint.setColor(colors.get(i)); 
     canvas.drawPath(paths.get(i), mPaint); 
    } 
} 
+0

没有用于path.size没有方法() ; –

+0

它是'paths.size()'(路径列表的大小) – XGouchet