ontouch在android绘制矩形
问题描述:
在我的应用程序触摸事件我想绘制矩形 - 我试着this.butnot得到如何绘制。请帮助我。 我想在触摸的点上绘制矩形。 如何在drawRect()方法中使用getX()和getY()? 如下代码 -ontouch在android绘制矩形
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction()==MotionEvent.ACTION_DOWN) {
int X=event.getX(); int Y=event.getY();
Paint paint = new Paint();
paint.setAntiAlias(true);
paint.setColor(getResources().getColor(R.color.Yellow)) ;
paint.setAlpha(opacity);
Canvas canvas1 = new Canvas(mutableimage1);
canvas1.drawRect(2.5f,2.5f,2.5f,2.5f, paint);
}
}
答
不要在onTouch方法实例化一个新的对象:canvas1 = new Canvas(...)
会造成死机和滞后。创建此画布以善于创建视图。
要小心,我认为你的drawRect()
调用不会吸引你所需要的: 您绘制一个矩形,与X = 2.5 Y = 2.5宽度= 2.5高= 2.5
我假设你需要定位您的矩形根据触摸的位置是:
//set the x and y pos according to the touch point
// by removing half the size of the rect we center it on this point ;)
canvas1.drawRect(X-1.25f, Y-1.25f, 2.5F, 2.5f, paint);
否则这是相当正确的,但要知道,你是一个可变的位图(“mutableimage1”)绘制将没有必要显示。
您可能想要在视图的onDraw(Canvas viewCanvas)
方法中添加显示。 使用:
viewCanvas.drawBitmap(mutableimage1, 0,0, aPreviouslyCreatedPaint);
actully我试图借鉴image.and矩形当我trird为圆其working.but矩形没有显示 – 2013-03-03 13:56:39
好吧,你可能需要比较你的代码为矩形和圈?有什么区别可以导致矩形不被绘制。到目前为止我有帮助吗? – Guian 2013-03-03 14:06:01