package android.ajou.amicom;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
public class Dot extends View{
 private static final float RADIUS = 10;
 private float x = 30;
 private float y = 30;
 private float initialX;
 private float initialY;
 private float offsetX;
 private float offsetY;
 private Paint backgroundPaint;
 private Paint myPaint;
 
 
 public Dot(Context context, AttributeSet attrs){
 super(context, attrs);
 
 backgroundPaint = new Paint();
 backgroundPaint.setColor(Color.WHITE);
 
 myPaint = new Paint();
 myPaint.setColor(Color.BLACK);
 myPaint.setAntiAlias(true);
}
@Override
public boolean onTouchEvent(MotionEvent event){
 int action = event.getAction();
 switch(action) {
 
 case MotionEvent.ACTION_DOWN:
 if(event.getAction() == MotionEvent.ACTION_DOWN) {
  initialX = x;
  initialY = y;
  offsetX = event.getX();
  offsetY = event.getY();
  int X = (int)event.getX();
  int Y = (int)event.getY();
 
  if(Math.pow( X - x, 2) + Math.pow( Y - y, 2) <= Math.pow(10, 2))
}
  break;
 case MotionEvent.ACTION_MOVE:
 case MotionEvent.ACTION_UP:
 case MotionEvent.ACTION_CANCEL:
  x = initialX + event.getX() - offsetX;
  y = initialY + event.getY() - offsetY;
  break;
 }
 event.recycle();
 return(true);
}
@Override
public void draw(Canvas canvas){
 int width = canvas.getWidth();
 int height = canvas.getHeight();
 canvas.drawRect(0, 0, width, height, backgroundPaint);
 
 canvas.drawCircle(x, y, RADIUS, myPaint);
 invalidate();
 }
}

 

 

원을 만들고 원을 터치와 드래그 시키는 코드 입니다.

ACTION_DOWN에서 원 밖의 영역에서는 터치가 되지 않도록 하고 싶어서 if문을 넣어봤는데요.

아무리봐도 뭐가 좀 많이 안맞는거 같아요.

X,Y는 원의 좌표로 하고 x,y는 마우스 클릭위치로 해서 그 길이를 통해 영역설정을 하고 싶은데요.

틀린거좀 고쳐주세요.

자바 완전 초보라서 혼자라기 힘들거든요 ㅜㅜ 부탁드려요~