是否可以检查某个点是否包含在Matrix坐标中?我有原始的Matrix用于绘制视图,并想知道onTouch事件坐标是否包含在其坐标中。 感谢
好的,我应该更好地解释一下。 我有一个自定义View MyView。在它的构造函数中,我传递矩阵来绘制视图。 onDraw方法是:
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawBitmap(this.baseBitmap, this.matrix, null);
}
在onTouch方法中,我可以使用event.getX()
和event.getY()
获取触摸点并使用这些点,我需要检查触摸点是否在MyView内。
希望现在很清楚:)
答案 0 :(得分:1)
我使用以下代码计算矩阵的(x4,y4)坐标。
float[] matrixValues = new float[9];
matrix.getValues(matrixValues);
view.getDrawable().getIntrinsicHeight() * matrixValues [0];
view.getDrawable().getIntrinsicWeight() * matrixValues [0];
由于图层管理,perapse必须使用以下方法检查ImageView坐标:
yourImageView.getTop()
yourImageView.getBottom()
yourImageView.getRight()
yourImageView.getLeft()
e.g。
float[] m = new float[9];
matrix.getValues(m);
int layoutHeight = view.getBottom() - view.getTop();
float maxMatrixBottomPosition = - ((view.getDrawable().getIntrinsicHeight() * m[0]) - layoutHeight);
答案 1 :(得分:0)
float[] values = new float[9];
matrix.getValues(values);
globalX = values[2];
globalY = values[5];
此处globalx和globaly将给出视图的x和y坐标,然后将其与event.getX和event.getY值进行比较