|
public class drawing extends Activity {
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(new MyView(this)); }
class MyView extends View {
ArrayList<Vertex> list = new ArrayList<Vertex>(); public Paint p = new Paint();
// --------------------------------------- // 생성자 // ---------------------------------------
public MyView(Context context) { // this를 context로 받아 super(context); p.setColor(Color.BLACK); p.setAntiAlias(true); p.setStrokeWidth(5); }
// --------------------------------------- // 생성자 // ---------------------------------------
public class Vertex {
public Vertex(float x, float y, boolean stat) { this.x = x; this.y = y; this.stat = stat; }
float x; float y; boolean stat; }
// ----------------------------------- // 이미지파일로 비트맵을 만들고 Canvas에 그림을 그리는 onDraw() // -------------------------------------
@Override public void onDraw(Canvas canvas) {
System.out.println("onDraw"); // 캔버스 배경을 흰색으로 변경 canvas.drawColor(Color.WHITE);
for (int i = 0; i < list.size(); i++) { Vertex v = list.get(i); // 선을 그린다. if (v.stat == true) { canvas.drawLine(list.get(i - 1).x, list.get(i - 1).y, list .get(i).x, list.get(i).y, p); } } }
@Override public boolean onTouchEvent(MotionEvent event) { System.out.println("onTouchEvent"); if (event.getAction() == MotionEvent.ACTION_DOWN) { System.out.println("ACTION_DOWN"); list.add(new Vertex(event.getX(), event.getY(), false)); }
else if (event.getAction() == MotionEvent.ACTION_MOVE) { list.add(new Vertex(event.getX(), event.getY(), true)); System.out.println("ACTION_MOVE"); invalidate(); } return true; }
}
}
|