import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.os.Bundle;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.Window;
import android.view.animation.*;
import android.widget.*;

public class MyGraphics2D02 extends Activity {   // 액티비티를 상속받음
 @Override
    public void onCreate(Bundle savedInstanceState) {    
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE); 
        setContentView(new CustomView(this));     // 화면에 뿌려줄것을 나타냄
    }
 
    class CustomView extends SurfaceView implements SurfaceHolder.Callback {// 위에서 얘기한 뿌려줄 함수인데 상속을 받았다
      int jj=70;
     private CustomViewThread CVThread;  // 쓰레드 객체 (밑에서 메소드 정의함)
 
        public CustomView(Context context) {
            super(context);//위를 쓸수 잇는권한
            getHolder().addCallback(this);       // 홀더와 쓰레드와 연결햇음??
            CVThread = new CustomViewThread(getHolder(), this); //
           
        }
 
        @Override
        public void onDraw(Canvas canvas) {
         Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.icon);  // 아이콘 이미지를 비트맵이지지로 만든다
           
         canvas.drawColor(Color.parseColor("#dedede"));// 회색으로 바탕화면을뿌려준다
          
            jj+=10;
           
            canvas.save();
           
            canvas.rotate(15);
            canvas.drawBitmap(bm, jj, 70, null);  
            canvas.restore();
           
            try { Thread.sleep(500); } catch (Exception e){}
        }
 
        @Override
        public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
            // TODO Auto-generated method stub
 
        }
 
        @Override
        public void surfaceCreated(SurfaceHolder holder) {
            CVThread.setRunning(true);
            CVThread.start();
        }
 
        @Override
        public void surfaceDestroyed(SurfaceHolder holder) {
           
            boolean retry = true;
            CVThread.setRunning(false);
            while (retry) {
                try {
                    CVThread.join();
                    retry = false;
                } catch (InterruptedException e) {
                   
                }
            }
        }
    }
 
    class CustomViewThread extends Thread {
        private SurfaceHolder surfaceholder;
        private CustomView customview;
        private boolean running = false;
 
        public CustomViewThread(SurfaceHolder surfaceHolder, CustomView CustomView) {
            surfaceholder = surfaceHolder;
            customview = CustomView;
        }
 
        public void setRunning(boolean run) {
            running = run;
        }
 
        @Override
        public void run() {
            Canvas c;
            while (running) {
                c = null;
                try {
                    c = surfaceholder.lockCanvas(null);
                    synchronized (surfaceholder) {
                        customview.onDraw(c);
                       
                    }
                } finally {
                   
                    if (c != null) {
                        surfaceholder.unlockCanvasAndPost(c);
                    }
                }
            }
        }
    }
}
저는 정말 안드로이드 대해 모르지만 . 해보려고 노력중에 하고 잇는데 ..
쉽지가 않아요 어디부분을 수정해야 하는지 .. 그리고 그래픽이 부자연 스럽지 않게
아이폰이나 고런처처럼 흔들릴수 잇을까요?모가 잘못되고 어딜수정해야 하나요 ??ㅠㅠ
일단 아이폰롱클릭시 흔들리는걸 구현하려는건데 그냥 일단 이미지 하나 띄어놓고 해보는게 먼저
일거 같아서 이렇게 하고 있습니다  답변주탁 드립니다