안드로이드 개발 질문/답변
(글 수 45,052)
public class DrawGraph extends Activity { ... @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TestView tv = new TestView(this); setContentView(tv);... } class TestView extends View { public TestView(Context context) { super(context); } public void onDraw(Canvas canvas) { Paint p_red = new Paint(); //기준선의 색, X축, Y축 p_red.setColor(Color.RED); Paint p_grn = new Paint(); //기준선의 색, X축, Y축 p_grn.setColor(Color.GREEN); canvas.drawLine(x, 0, x, displayHeight, p_red); canvas.drawLine(0, y, displayWidth, y, p_red); canvas.drawCircle(x1, y1, 3f, p_grn); } public boolean onTouchEvent(MotionEvent event){ if (event.getAction() == MotionEvent.ACTION_DOWN) { x = event.getX(); y = event.getY(); invalidate(); return true; } if (event.getAction() == MotionEvent.ACTION_UP) { x1 = event.getX(); y1 = event.getY(); invalidate(); return true; } if (event.getAction() == MotionEvent.ACTION_MOVE) { x = event.getX(); y = event.getY(); invalidate(); return true; } return false; } } }
중간에 ... 으로 표현된것은 생략한거이구요,,
모션이벤트를 사용하여 크로스선이 드래그를 따라 이동하고 ACTION_UP할 때 그 위치에 점을 찍었습니다.
여기서 크로스선은 정확한 위치에 점을 찍기 위함이라 액션_업 했을 때 크로스 없어져야하는건 맞는데 기존에
찍어놓은 점도 사라져버리네요.. 물론,, invalidate()때문에 그렇다는건 알겠는데...
크로스는 액션_업 할 때 사라지고, 기존 점은 계속 남아있게하는 방법으로는 어떤방식이 좋을까요...;;;
점 5개를 찍은 후 이 점의 좌표값은 알고있어야하구요.