2012-01-27 14 views
0
onTouch(MotionEvent event){ 
int x = (int) event.getX(); 
int y = (int) event.getY(); 

if(event.getAction==MotionEvent.DOWN){ 
     temp_point = new ArrayList<Point>(); 
     temp_point.add(new Point(x,y); 
}else if(event.getAction==MotionEvent.MOVE){ 
     if(temp_point!=null) 
      temp_point.add(new Point(x,y); 
}else if(event.getAction==MotionEvent.UP){ 
     mainPoint.add(temp_point); 
     temp_point = null; 
} 
return true; 

}アンドロイド

で元に戻すかする方法を私はキャンバスを使用してペイントをしています。私はペイントを消去することができますが、私はペイントした最後のペイントを元に戻すことができません。

+7

元に戻す_what_? – Nailuj

+2

あなたは何をしようとしています...あなたの問題を説明してください... –

答えて

0

このような状況で元に戻す/やり直しを実装する場合は、Command Patternを調べる必要があります。

これはAndroid per seとは関係ありません。この機能を実装するには、あなた自身で行う必要があります。

0

paintオブジェクトをpaint []のような1つの配列に入れておくことができます。 私はそれを大雑把に理解しようとします。

ペイント[]ペイント=新しいペイント[カウンター] //カウンターは、必要なオブジェクトの番号です。

あなたがキャンバスに新しいペイントオブジェクトを適用したい場合、配列のオブジェクトが新規に作成されますし、あなたのカウンタが増加します並列..

あなたは以前のものを得ることができるようにあなた、あなたのカウンターの意志デクリメントを元に戻しますペイントのオブジェクトとキャンバスに適用することができますキャンバスの元に戻すことを意味します..