触摸在Drawable的getBounds()内

时间:2012-11-11 22:50:35

标签: android drawable surfaceview ontouchevent bounds

我有一个类,我设置了这样的界限:

tattoo.setBounds(getWidth() / 2 - zoomController - x, getHeight() / 2 - zoomController - y, getWidth()/ 2 + zoomController - x, getHeight()/ 2 + zoomController - y);
tattoo.draw(c);

我希望能够在用户点击这些边界内时执行操作。检查点击是否在界限范围内的最简单方法是什么?

1 个答案:

答案 0 :(得分:2)

使用描述drawable边界的Rect并在其上调用contains(int x, int y)方法,传入x和y触摸坐标。例如:

Rect bounds = tattoo.getBounds();
int x = ...
int y = ...
boolean withinBounds = bounds.contains(x, y);

或者,您可以创建自己的(静态)辅助方法;数学是非常基础的。 :)