我创建了一个view,在ondraw在里面画矩形,在onTouchEvent在里面改变位置继续画矩形,但是新的矩形画出来旧的就没了,怎么才能实现把旧的矩形保存下来形成重叠的效果呢?在对速度影响不大的情况下?public class MyView extends View {
int px;
int py;
public MyView(Context context) {
super(context);
// TODO Auto-generated constructor stub
px = 100;
py = 100;
} @Override
public void onDraw(Canvas canvas) {   super.onDraw(canvas);
Paint paint = new Paint();
paint.setColor(Color.WHITE);
paint.setStyle(Style.FILL);
canvas.drawRect(new Rect(px, py, px+100, py+100), paint);
}

@Override
public boolean onTouchEvent(MotionEvent event)
{
super.onTouchEvent(event);
px = (int) event.getX();
py = (int) event.getY();
this.invalidate();
return true;
}

解决方案 »

  1.   

    那就得把点记录下来了,然后每次ondraw的时候把以前的都绘制一遍
    建议你把paint当做成员变量来用
      

  2.   

    难道  每次 ondraw()方法的时候  都要重新 加载一次view?  会把原来的view 替换掉   有没有画图  只画部分区域的view的方法  而不是重新画整个view ,求哪位大侠帮忙解释下