我用view画的bitmap,起初是简单地判断是否落在绘制bitmap的矩形区域,后来发现用Matrix旋转bitmap之后,这招行不通。如何判断斜着的矩形区域呢?求救!
------解决方案--------------------
这个我帮你想了一下,你可以这样实现,你的bitmap在没有旋转之前,坐标系是我们一般水平和竖直的,如果你旋转了一定角度之后,那么这个坐标系也接着就被旋转了,根据数学知识,按照坐标系转换,不久可以的了嘛。
------解决方案--------------------
这个有意思,我做过,其实你要取得matrix的9个float,然后根据公式算出四个顶点坐标,然后判断点击点是否在这个四个顶点内。
以下是抄的:(如果图片没有旋转,这段代码是对的,旋转需要多考虑些)
Matrix matrix = mImageViewMap.getImageMatrix();
Rect rect = mImageViewMap.getDrawable().getBounds();
float[] values = new float[9];
matrix.getValues(values);
ImageState mapState = new ImageState();
mapState.Left = values[2];
mapState.Top = values[5];
mapState.Right = mapState.Left() + rect.width() * values[0];
mapState.Bottom = mapState.Top() + rect.height() * values[0];
//这样,ImageState中存放的是mImageViewMap中的图片四个边的值。