public class DrawingActivity extends Activity{

 LinearLayout drawArea;
 LinearLayout buttonList;
 Button MenuOpenButton;
 Button MenuCloseButton;
 private Paint mPaint;

 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(new MyView(this));
     mPaint = new Paint();  
         mPaint.setColor(Color.BLACK);   //색
         mPaint.setAntiAlias(true);   //테두리 부르럽게
         mPaint.setStyle(Paint.Style.STROKE);
         mPaint.setStrokeJoin(Paint.Join.ROUND);
         mPaint.setStrokeCap(Paint.Cap.ROUND);
         mPaint.setStrokeWidth(12);
 }
 
 public class drawPaint{
  private float x;
  private float y;
  private boolean draw;
  
  public drawPaint(float x,float y,boolean d){
   this.x=x;
   this.y=y;
   draw=d;
  }
  public boolean getDraw(){
   return draw;
  }
  public void setDraw(boolean _draw){draw=_draw;}
  public float getX(){return x;}
  public float getY(){return y;}
 }
 public class MyView extends View {   
    
     private Bitmap mBitmap;
     private Canvas mCanvas;
     private Path mPath;
     private Paint mBitmapPaint;
        

     public MyView(Context context) {  
         super(context);  
      
         DisplayMetrics metrics=new DisplayMetrics();
         getWindowManager().getDefaultDisplay().getMetrics(metrics);
         mBitmap=Bitmap.createBitmap(metrics.widthPixels,metrics.heightPixels,Bitmap.Config.ARGB_8888);
        
         mCanvas = new Canvas(mBitmap);
         mPath=new Path();
         mBitmapPaint=new Paint(Paint.DITHER_FLAG);
         mCanvas.drawColor(0xFFFFFFFF);
        
        
     }  
       
     protected void onDraw(Canvas canvas) {  
         canvas.drawColor(0xFF000000);   //배경색
         canvas.drawBitmap(mBitmap, 0,0,mBitmapPaint);
         canvas.drawPath(mPath, mPaint);
     }  
  
    
     private float mX,mY;
     private static final float TOUCH_TOLERANCE=4;
    
     private void touch_start(float x,float y){
      mPath.reset();
      mPath.moveTo(x, y);
      mX=x;
      mY=y;
     }
    
     private void touch_move(float x,float y){
      float dx=Math.abs(x-mX);
      float dy=Math.abs(y-mY);
      if(dx>=TOUCH_TOLERANCE || dy>=TOUCH_TOLERANCE){
       mPath.quadTo(mX, mY, (x+mX)/2,(y+mY)/2);
       mX=x;
       mY=y;
      }
     }
    
     private void touch_up(){
      mPath.lineTo(mX, mY);
      mCanvas.drawPath(mPath, mPaint);
      mPath.reset();
     }  
    
     public boolean onTouchEvent(MotionEvent event) {  
      float x=event.getX();
      float y=event.getY();
         switch (event.getAction()) {  
         case MotionEvent.ACTION_DOWN:   //눌렀을떄
            touch_start(x,y);
             break;  
         case MotionEvent.ACTION_MOVE:   //움직였을떄
            touch_move(x,y);
             break;
         case MotionEvent.ACTION_UP:
          touch_up();
          break;
         }  
         invalidate();
         return true;  
     }  
  
 } 

}

자유 곡선 예제 입니다...........
어렵다우.ㅜㅜ

'IT 공부 > 안드로이드' 카테고리의 다른 글

파서(Get)  (1) 2012.02.25
Activity 화면창  (3) 2011.11.03
Animation effect  (1) 2011.11.03
화면 변화  (1) 2011.11.02
단어 정리  (2) 2011.08.12

+ Recent posts