在android绘制矩形的ontouch

时间:2013-03-03 13:50:38

标签: android canvas drawrect ontouchevent

在我的触摸事件应用程序中,我想绘制正确的角度 - 我试过这个。但是没有得到如何绘制。请帮助我。 我想在被触摸的点上绘制矩形。 如何在drawRect()方法中使用getX()和getY()? 下面是代码 -

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);
                                 }
              }

1 个答案:

答案 0 :(得分:0)

不要在onTouch方法中实例化新对象:canvas1 = new Canvas(...) 它会导致冻结和滞后。创建此画布一次,以便创建视图。

小心我认为你的drawRect()电话不会得到你需要的东西: 你正在绘制一个x = 2.5 y = 2.5 width = 2.5 height = 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);