Холст и рисунок картины - PullRequest
0 голосов
/ 29 марта 2012

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

1 Ответ

1 голос
/ 30 марта 2012

Этот урок полезен:

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 в своем конструкторе, но я сделал это здесь для простоты в примере.

Затем в 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) для каждой точки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...