Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 路径对象中的计算边界返回0_Java_Android_Graphics - Fatal编程技术网

Java 路径对象中的计算边界返回0

Java 路径对象中的计算边界返回0,java,android,graphics,Java,Android,Graphics,我有一个简单的android绘图应用程序,我想检测用户是否点击了一行。为了加快这个过程,我想得到所有路径的边界,并检查用户输入是否在边界内,以快速消除一些路径 我遇到的问题是,该方法: pathInstance.computeBounds(boundsObject,false); 始终返回0,或者更确切地说是一个包含所有0的rect 奇怪的是,如果我调试我的应用程序,当应用程序在屏幕上绘制的断点处停止时,当应用程序继续执行时,computeBounds会工作 以前有人吃过这个吗?我可以

我有一个简单的android绘图应用程序,我想检测用户是否点击了一行。为了加快这个过程,我想得到所有路径的边界,并检查用户输入是否在边界内,以快速消除一些路径

我遇到的问题是,该方法:

    pathInstance.computeBounds(boundsObject,false);
始终返回0,或者更确切地说是一个包含所有0的rect

奇怪的是,如果我调试我的应用程序,当应用程序在屏幕上绘制的断点处停止时,当应用程序继续执行时,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);
        }
for(int index=0;index
其中草图基本上是一对油漆和路径


谢谢,

我强烈建议您发布代码。如果不了解所有对象类型,很难提供帮助,什么是pathInstance?什么是边界对象?当用户触摸屏幕时,执行的代码是什么?听起来好像您发现边界没有被更新,但您是否确保添加到路径的点实际上与您用于检测碰撞的路径相同?试着在这里发一个帖子,你很可能会在发帖子的时候发现你的问题。我将试着举一个小例子。至于你的问题,这是pathInstance和boundsObject的伪代码,其中path Instance是path对象的实例,boundsObject是Rect,这是computeBounds所要求的。是,以下操作将附加到同一路径。