android - 矩阵坐标中的点

标签 android events view matrix touch-event

是否可以检查一个点是否包含在矩阵坐标中?我有用于绘制 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/

相关文章:

java - 从普通 Java 事件创建 Observable

ios - 在彼此之上的相同 View 之间交叉淡入淡出

mysql - 我们如何连接 MySQL 中的公共(public)表?

android - 信号 TabHost 以重新加载 View

java - Proguard 返回错误代码 1 - 尝试使用 Proguard

Android如何使用glide将相对布局的背景设置为gif

iphone - 使用设备方向来实现模态视图 Controller

android - 当我在父级全屏 Activity 上显示警告对话框时,我不想显示 SystemUI

Javascript 与 jQuery : Click and double click on same element, 不同的效果,一个禁用另一个

events - Angular Dart 组件事件