1

是否可以检查一个点是否包含在矩阵坐标中?我有用于绘制视图的原始矩阵,并想知道 onTouch 事件坐标是否包含在其坐标中。谢谢


好吧,我应该解释得更好。我有一个自定义视图 MyView。在它的构造函数中,我通过矩阵来绘制视图。onDraw 方法是:

@Override   
protected void onDraw(Canvas canvas) {  
         super.onDraw(canvas);
         canvas.drawBitmap(this.baseBitmap, this.matrix, null); 
}

在 onTouch 方法中,我可以使用和使用这些来获取触摸点event.getX()event.getY()我需要检查触摸点是否在 MyView 内。

希望现在很清楚:)

4

2 回答 2

1

我使用以下代码计算矩阵的 (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);
于 2011-05-23T13:27:46.513 回答
0
float[] values = new float[9];
matrix.getValues(values);
globalX = values[2];
globalY = values[5];

这里 globalx 和 globaly 将给出您的视图的 x 和 y 坐标,然后将其与 event.getX 和 event.getY 值进行比较

于 2011-04-26T12:11:23.030 回答