是否可以检查一个点是否包含在矩阵坐标中?我有用于绘制 View 的原始 Matrix,想知道 onTouch 事件坐标是否包含在其坐标中。 谢谢
好的,我应该解释得更好。 我有一个自定义 View MyView。在它的构造函数中,我传递矩阵来绘制 View 。 onDraw方法是:
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawBitmap(this.baseBitmap, this.matrix, null);
}
在 onTouch 方法中,我可以使用 event.getX()
和 event.getY()
获取触摸点并使用它们,我需要检查触摸点是否点在 MyView 内。
希望现在一切都清楚了:)
最佳答案
我使用以下代码计算矩阵的 (x4,y4) 坐标。
float[] matrixValues = new float[9];
matrix.getValues(matrixValues);
view.getDrawable().getIntrinsicHeight() * matrixValues [0];
view.getDrawable().getIntrinsicWeight() * matrixValues [0];
由于层级管理的关系,你必须使用下面的方法来检查ImageView的坐标:
yourImageView.getTop()
yourImageView.getBottom()
yourImageView.getRight()
yourImageView.getLeft()
例如
float[] m = new float[9];
matrix.getValues(m);
int layoutHeight = view.getBottom() - view.getTop();
float maxMatrixBottomPosition = - ((view.getDrawable().getIntrinsicHeight() * m[0]) - layoutHeight);
关于android - 矩阵坐标中的点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5788827/