如何在点击的地方从可绘制资源中绘制图片?我有onTouch方法,我点击的位置,但我不知道如何在这个坐标中绘制图片。
答案 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)每个点的行。