我有一个简单的Android绘图应用程序,我想检测用户是否点击了一行。为了加快这个过程,我想获得所有路径的边界,并检查用户输入是否在快速消除某些路径的范围内。
我遇到的问题是方法:
pathInstance.computeBounds(boundsObject,false);
始终返回0,或者更确切地说是一个包含全0的矩形。
奇怪的是,如果我调试我的应用程序,当应用程序在断点处停止时,我在屏幕上绘制,当应用程序继续执行时,computeBounds会起作用
以前有人有这个吗?我可以发布我的代码,但我只是想知道它是否是一个常见的问题?
编辑:我知道现在的问题并且已经破解了但是这个解决方案仍然不起作用。问题在于,当用户首先输入数据时,例如触摸被触摸到屏幕的触摸,并且当我向该路径添加点时,它永远不会更新边界计算。我现在手动迭代点并自己计算边界。
代码: DrawingPanel.java:
for (int index = 0; index < mSketches.size(); index++) {
Sketch s = mSketches.get(index);
canvas.drawPath(s.getPath().getPath(), s.getPaint());
canvas.drawRect(10,10,50,50,rad);
RectF temp = s.computeBounds();
for (int i = 0; i < s.mEnds.size(); i++){
canvas.drawPoint(s.mEnds.get(i).first, s.mEnds.get(i).second , endsPaint);
canvas.drawCircle(s.mEnds.get(i).first , s.mEnds.get(i).second , END_STICK_WIDTH, rad);
}
canvas.drawRect(s.computeBounds(),rad);
}
草图基本上是一对油漆和路径。
谢谢,