2012-03-29 6 views
0

클릭하면 그림이 그려지는 곳에서 그림을 그릴 수 있습니까? onTouch 메서드를 사용하여 클릭하는 위치를 얻지 만이 좌표에서 그림을 그릴 수있는 방법을 알지 못합니다.캔버스 및 그림 그림

답변

1

이 튜토리얼은 도움이된다 :

http://www.helloandroid.com/tutorials/how-use-canvas-your-android-apps-part-1

는 시작이 무엇을보고 구현합니다.

그럼 당신은 X를 업데이트 할 수 있습니다 및 Y (그들은 모두 10로 하드 코딩 된 튜토리얼) 이미지의 좌표

int mXpos = 10; 
    int mYpos = 10; 

    public void updateXY(int x, int y) { 
     mXpos = x; 
     mYpos = y; 
    } 

    @Override 
    public void onDraw(Canvas canvas) { 

      Paint paint = new Paint(); 


      Bitmap kangoo = BitmapFactory.decodeResource(getResources(), 
          R.drawable.kangoo); 
      canvas.drawColor(Color.BLACK); 
      canvas.drawBitmap(kangoo, mXpos, mYpos, null); 

    } 

당신은 아마 당신의 생성자에서 mXpos 및 mYpos를 초기화해야한다,하지만 난했습니다 이 예제에서는 간단하게하기 위해 여기에서 수행했습니다.

그런 Canvastutorial의에서 onCreate에, 당신의 OnTouchListener 추가

mGamePanel = (Panel) this.findViewById(R.id.SurfaceView01); 
    mGamePanel.setOnTouchListener(new OnTouchListener(){ 
     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      mGamePanel.updateXY((int)event.getX(), (int)event.getY()) 
      return true; 
    }}); 

을 OR, 필요에 따라, 당신은 X, Y 포인트의 ArrayList를을 만들 수에서 다음 onTouch에 새로운 포인트마다를 추가하려면 캔버스의 onDraw 메서드를 사용하면 각 점에 대해 canvas.drawBitmap (kangoo, 10, 10, null) 행을 반복합니다.