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;
@SuppressWarnings("unused")
public class Dot extends View{
 private static final String UNUSED = "unused";
private static final float RADIUS = 10.0f;
 private static final int STATE_NONE = 0;
 private static final int STATE_DRAG = 1;
private int mState = STATE_NONE;
 
 private float x = 30;
 private float y = 30;
 private float mX = 30.0f;
 private float mY = 30.0f;
 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.YELLOW);
 
 myPaint = new Paint();
 myPaint.setColor(Color.BLUE);
 myPaint.setAntiAlias(true);
}
@Override
public boolean onTouchEvent(MotionEvent event){
 int action = event.getAction();
 switch(action){
 case MotionEvent.ACTION_DOWN:
  final float a = event.getX();
  final float b = event.getY();
  
  if(Math.sqrt(Math.pow(a - mX, 2) + Math.pow(b - mY, 2)) <= RADIUS){
   mState = STATE_DRAG;
  }
  return true;
  
 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();
 
}
} 
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 package android.ajou.amicom;
import java.util.*;
import android.app.*;
import android.content.*;
import android.graphics.*;
import android.os.*;
import android.view.*;
public class Line 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);
    
         mPaint = new Paint();
         mPaint.setColor(Color.WHITE);
         mPaint.setStrokeWidth(5);
         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;
     }
 }
}
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 package android.ajou.amicom;
import android.app.Activity;
import android.os.Bundle;
 
public class Drag extends Activity {
 private static final String AttributeSet = null;
 private static final String Context = null;
 /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
     
        new Dot(null, null);
        Dot(Context,AttributeSet);
        
        new Line();
        Line();
     
    }
 private void Line() {
  // TODO Auto-generated method stub
  
 }
 private void Dot(String context2, String attributeset2) {
  // TODO Auto-generated method stub
  
 }
}

 

다음과 같이 세개의 클래스가 있는데요.

마지막 Drag.java클래스에 Line.java랑 Dot.java 내용을 불러와서 실행 시키려고 하는데요

에뮬이 실행이 안되네요 ㅜㅜ 오류가 크게 있는거 같은데 잘 모르겠어요 ㅜ(문제의 빨간줄)

Line.java랑 Dot.java를 Drag.java에 불러오거나, 한 클래스에 Line.java랑 Dot.java을 코딩할 수 있거나

방법좀 알려주세요 ㅜ

 

*제가 만들고 싶은건 원을 만들고 그 원이 터치와 드래그만 되면서 이동경로에 잔상(선)을 남기는 것 입니다 ㅜㅜ