我需要将onTouch方法设置为我已设置的rect,但我不知道如何在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;
}
}
答案 0 :(得分:2)
就是:
if(Rect.contains((int) event.getX(),(int) event.getY())){
我认为这就是你的要求让我知道它不是
答案 1 :(得分:1)
首先,您可能会遇到很多问题
Rect Rect = new Rect();
将其命名为
Rect rect2 = new Rect();
或类似的东西,而不是Rect Rect
小型表演tipp
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())) {
答案 2 :(得分:0)
了解MotionEvent类。
答案 3 :(得分:0)
在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.