2012-03-29 3 views
0

Как я могу нарисовать изображение из доступных ресурсов на месте, где я нажимаю? У меня есть метод onTouch, где я получаю позицию, где я нажимаю, но я не знаю, как рисовать изображение в этих координатах.Холст и рисунок изображения

ответ

1

Этот учебник является полезным:

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

Реализовать то, что вы видите там, чтобы начать.

Тогда вы можете обновить X и Y координаты изображения (в учебнике они оба HARDCODED 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 в конструкторе, но у меня сделано здесь для простоты в примере.

Тогда в OnCreate Canvastutorial, добавьте свой 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; 
    }}); 

ИЛИ, в зависимости от ваших потребностей, вы можете создать ArrayList из X, Y точек и добавить новую точку каждый раз, когда в onTouch, то в вашем onDraw на холсте, вы должны перебирать строку canvas.drawBitmap (kangoo, 10, 10, null) для каждой точки.

Смежные вопросы