指向矩阵坐标

时间:2011-04-26 10:10:37

标签: android events view matrix ontouchevent

是否可以检查某个点是否包含在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内。

希望现在很清楚:)

2 个答案:

答案 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值进行比较