我需要将onTouch方法设置为我设置的矩形,但我不知道如何在OnDraw方法中执行此操作。 这个但我不知道我的代码如何在这里, 感谢您的帮助!
public class Tab3 extends View implements OnTouchListener
{
int x1, x2, y1, y2;
Rect Rect = new Rect();
public Tab3(Context context, AttributeSet attrs)
{
super (context, attrs);
x1 = 0;
x2 = 100;
y1 = 0;
y2 = 100;
}
@Override
protected void onDraw(Canvas canvas)
{
// TODO Auto-generated method stub
super.onDraw(canvas);
Rect.set(x1, y1, x2, y2);
Paint blue = new Paint();
blue.setColor(Color.BLUE);
canvas.drawRect(Rect, blue);
}
@Override
public boolean onTouch(View v, MotionEvent event)
{
return false;
}
}
在您的
onTouch 中只需输入:
if(Rect.contains((int) event.getX(),(int) event.getY())){
我想这就是你的要求让我知道,如果不是
首先,您可能会遇到很多问题
Rect Rect = new Rect();
命名它
Rect rect2 = new Rect();
或类似的东西,而不是矩形矩形
小性能提示
Rect.set(x1, y1, x2, y2);
在
public Tab3(Context context, AttributeSet attrs)
{
}
因为
protected void onDraw(Canvas canvas)
{
每次重新粉刷时都会调用
invalidate();
她你检查你是否按在矩形
if (rect2.contains(event.getX(),event.getY())) {
阅读有关 MotionEvent 类的信息。
中 onTouch
,您可以执行以下操作:
if(Rect.contains((int) event.getX(), (int) event.getY())) {
//do something
}
return super.onTouch(View v, MotionEvent event); //call super's method so that system would send event to you only once when you touched it.