어플이 어떻게 돌아가는지 알고싶습니다..
정말 죄송하지만 주석좀 부탁드립니다. ㅠ _ ㅠ
package ex.woojin.exam;
import java.util.*;
import android.app.*;
import android.content.*;
import android.graphics.*;
import android.os.*;
import android.view.*;
public class FreeLine extends Activity {
private MyView vw;
ArrayList<Vertex> list = new ArrayList<Vertex>();
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
vw = new MyView(this);
setContentView(vw);
}
public class Vertex {
float x;
float y;
boolean Draw;
Vertex(float ax, float ay, boolean ad) {
x = ax;
y = ay;
Draw = ad;
}
}
protected class MyView extends View {
Paint mPaint;
public MyView(Context context) {
super(context);
mPaint = new Paint();
mPaint.setColor(Color.BLACK);
mPaint.setStrokeWidth(5);
mPaint.setAntiAlias(true);
}
public void onDraw(Canvas canvas) {
canvas.drawColor(Color.WHITE);
for (int i = 0; i < list.size(); i++) {
if (list.get(i).Draw) {
canvas.drawLine(list.get(i - 1).x, list.get(i - 1).y,
list.get(i).x, list.get(i).y, mPaint);
}
}
}
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
list.add(new Vertex(event.getX(), event.getY(), false));
return true;
}
if (event.getAction() == MotionEvent.ACTION_MOVE) {
list.add(new Vertex(event.getX(), event.getY(), true));
invalidate();
return true;
}
return false;
}
}
}




흠.. 주석까지는 좀 그렇구요
일단 FreeLine 이란 activity가 돌꺼에요. 근데 이녀석의 기능이 view를 extends한 MyView를 통해서, canvas확보하고, 터치를 통해서 터치 눌렀을때 (MotionEvent.ACTION_DOWN)이면 해당 좌표를 list에 저장하고, 이때는 그리지 않도록 false를 셋하고, (MotionEvent.ACTION_MOVE)터치를 이동하였을때는 선을 그리도록 true를 셋하는겁니다. 그래서 그려진 view를 FreeLine activity에서 setContentView하여서 보여주는것이지요..