在我的触摸事件应用程序中,我想绘制正确的角度 - 我试过这个。但是没有得到如何绘制。请帮助我。 我想在被触摸的点上绘制矩形。 如何在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);
}
}
答案 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);