画布和绘画图片

时间:2012-03-29 19:12:47

标签: android canvas

如何在点击的地方从可绘制资源中绘制图片?我有onTouch方法,我点击的位置,但我不知道如何在这个坐标中绘制图片。

1 个答案:

答案 0 :(得分: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中添加一个新的Point,然后在你的onDraw方法中你将遍历canvas.drawBitmap(kangoo,10, 10,null)每个点的行。