2012-03-29 119 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; 
    }}); 

,或者根据您的需求,您可以创建X,Y点的ArrayList和每次添加一个新的点在onTouch,然后在您的在canvas的onDraw方法中,您将迭代每个点的canvas.drawBitmap(kangoo,10,10,null)行。