«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

올해는 머신러닝이다.

안드로이드:그림메모 소스.. 본문

Android/Tip&Tech

안드로이드:그림메모 소스..

행복한 수지아빠 2010. 11. 14. 19:22
미치겠다 봐도 모르겠다..1818181818..

=====================================

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> arVertex;
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        vw = new MyView(this);
        setContentView(vw);

        arVertex = new ArrayList<Vertex>();
    }

    // 정점 하나에 대한 정보를 가지는 클래스
public class Vertex {
Vertex(float ax, float ay, boolean ad) {
x = ax;
y = ay;
Draw = ad;
}
float x;
float y;
boolean Draw;
}
    protected class MyView extends View {
     Paint mPaint;

     public MyView(Context context) {
       super(context);
       
       // Paint 객체 미리 초기화
mPaint = new Paint();
mPaint.setColor(Color.BLACK);
mPaint.setStrokeWidth(3);
mPaint.setAntiAlias(true);
   }

   public void onDraw(Canvas canvas) {
canvas.drawColor(0xffe0e0e0);
// 정점을 순회하면서 선분으로 잇는다.
for (int i=0;i<arVertex.size();i++) {
if (arVertex.get(i).Draw) {
canvas.drawLine(arVertex.get(i-1).x, arVertex.get(i-1).y, 
arVertex.get(i).x, arVertex.get(i).y, mPaint);
}
}
}

   // 터치 이동시마다 정점들을 추가한다.
   public boolean onTouchEvent(MotionEvent event) {
    if (event.getAction() == MotionEvent.ACTION_DOWN) {
    arVertex.add(new Vertex(event.getX(), event.getY(), false));
    return true;
    }
    if (event.getAction() == MotionEvent.ACTION_MOVE) {
    arVertex.add(new Vertex(event.getX(), event.getY(), true));
    invalidate();
    return true;
    }
    return false;
   }
}
}