왕초보입니다ㅠㅠ

기초적인 질문일 수도 있겠지만.. 이틀째 너무 답답하여 질문을 올립니다.

앨범에서 선택한 이미지를 불러오되 이것이 움직이게 하는 기능을 구현하고 있습니다..이미지를 Main액티비티에서 불러오

는데요...Bitmap값을 받아오는 것까지는 다른 액티비티에서 잘 받아왔습니다. 그런데 NaviImageView를 불러와야 움직이는 기능을 적용할 수 있는데 아래 밑줄친 부분에서 에러가 납니다..

(아래는  Main 액티비티에서 그부분을 구현하는 코드입니다.)

(먼저, NaviImageView nImageView;로 선언하였습니다.)

 

else if(requestCode==121212){

  byte[] sample = data.getByteArrayExtra("TempBitmap");
  if (sample != null) {
         Bitmap bm = BitmapFactory.decodeByteArray(sample, 0,sample.length);
      //iv2.setImageBitmap(bm);

       // Context context = getApplicationContext();
        
         nImageView = new NaviImageView(context);
         nImageView.setBitmap(bm);
         setContentView(nImageView);
         nImageView.setVisibility(View.VISIBLE);

      

이 부분에서 ImageNavigation이라는 액티비티안에 있는 NaviImageView라는 클래스를 불러오려고 합니다.

그런데 계속 저 밑줄 친 첫번째 부분 context에서 에러가 납니다. ImageNavigation을 넣어도 안되고 그렇다고 this를 넣는 것도 아닌 것 같아 이렇게 질문 올립니다..

아래 코드는 ImageNavigation.java파일입니다.

 

public class ImageNavigation extends Activity {
 
 //NaviImageView nImageView;
 
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

       
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
    WindowManager.LayoutParams.FLAG_FULLSCREEN);
       
        requestWindowFeature(Window.FEATURE_NO_TITLE);
       
      
       
//        nImageView = new NaviImageView(this);
//        nImageView.setBitmap( BitmapFactory.decodeResource(getResources(), R.drawable.a3));
//       
//        setContentView(nImageView);
   }
   
    class NaviImageView extends View {

 
     /** �대�吏�**/
     public Bitmap image = null;
     
     private float startX = 0;
     private float startY = 0;
     
     private float userX = 0;
     private float userY = 0;
     
     final static int TOUCH_TOLERANCE = 4;
     
     public NaviImageView(Context context) {
      super(context);
      // TODO Auto-generated constructor stub
     }

     public NaviImageView(Context context, AttributeSet attrs) {
      super(context, attrs);
      // TODO Auto-generated constructor stub
     }

     public NaviImageView(Context context, AttributeSet attrs, int defStyle) {
      super(context, attrs, defStyle);
      // TODO Auto-generated constructor stub
     }
     
     public void setBitmap(Bitmap temp) {

      image = temp;
      
      userX = (image.getWidth() - getWindowManager().getDefaultDisplay().getWidth())/ -2;
      userY = (image.getHeight() - getWindowManager().getDefaultDisplay().getHeight())/ -2;
     }

     @Override
     protected void onDraw(Canvas canvas) {
      // TODO Auto-generated method stub

   if ( image != null)
    canvas.drawBitmap(image,  userX,  userY, null);
     }
     
     @Override
     public boolean onTouchEvent(MotionEvent event) {
      // TODO Auto-generated method stub
      
      float x = event.getX();
      float y = event.getY();
      
      switch ( event.getAction() ) {
      
      case MotionEvent.ACTION_DOWN:

       setUserNavi(x, y);

       break;
       
      case MotionEvent.ACTION_MOVE:

       processNavi(x, y);
    setUserNavi(x, y);
    
       invalidate();
       
       break;
       
      case MotionEvent.ACTION_UP:
       
       clearStartPoint();
       invalidate();
       
       break;
      }
      
      return true;
     }
     
     private void processNavi(float x, float y) {
      
      if( Math.abs( (startX - x)) > TOUCH_TOLERANCE ||
        Math.abs( (startY - y) ) > TOUCH_TOLERANCE ) {
       
    if ( startX > x )
     userX -= (startX - x );
    else
     userX += ( x - startX );
    
    if ( startY < y)
     userY += ( y - startY );
    else
     userY -= (startY - y);
   }
     }
     
     private void setUserNavi(float x, float y) {
      startX = x; startY = y;
     }
     
     private void clearStartPoint() {
      startX = startY = 0;
     }
    }
}