Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.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
Android 返回负边界的Paint.getTextBounds()_Android_Paint - Fatal编程技术网

Android 返回负边界的Paint.getTextBounds()

Android 返回负边界的Paint.getTextBounds(),android,paint,Android,Paint,我试图在imageview上显示的画布中查找正在单击的文本。我已经覆盖了imageview上的触控。这就是我使用的方法。我已经在画布上存储了所有的x,y坐标,我在画布上显示了文本以及文本和绘画。当触发Motion\u event.ACTION\u DOWN时。我获取事件坐标并检查事件坐标是否在文本边界内。下面是代码片段 float xRatio=(float)mTempBitmap.getWidth()/(float)mEditImageView.get

我试图在imageview上显示的画布中查找正在单击的文本。我已经覆盖了imageview上的触控。这就是我使用的方法。我已经在画布上存储了所有的x,y坐标,我在画布上显示了文本以及文本和绘画。当触发Motion\u event.ACTION\u DOWN时。我获取事件坐标并检查事件坐标是否在文本边界内。下面是代码片段

                    float  xRatio=(float)mTempBitmap.getWidth()/(float)mEditImageView.getWidth();
                    float yRatio= (float)mTempBitmap.getHeight()/(float)mEditImageView.getHeight();

                    mEditImageView.setImageBitmap(mTempBitmap);
                    for (TextItem textItem : mTextItemStack) {
                        Rect tempRect = new Rect();
                        textItem.getPaint().getTextBounds(textItem.getTextContent(), 0, textItem.getTextContent().length() - 1, tempRect);
                        tempRect.offset(textItem.getXCoordinate(), textItem.getYCoordinate());
                        if (tempRect.contains((int)(event.getX()*xRatio), (int) (event.getY()*yRatio))) {
                            mtextItemInFocus = textItem;
                            break;
                        }
                    }
但是问题出现在getTextBounds()调用中


但是我得到了负的边界。显然,我对getTextBounds的理解是错误的。请纠正我。我欢迎采取另一种方法来做同样的事情

你是说
top
绑定为负数,还是全部为负数?我建议使用
android.text.Layout
来绘制文本/检测文本boundaries@MikeM. 是顶部为负值(0,0)处的原点是文本基线的左侧点。由于y轴的方向是向上的,因此向上为负数,
top
边界为负数。这有意义吗?@MikeM。明白了,谢谢。