当前位置: 代码迷 >> Android >> 怎么判断是否点中bit地图(触控点落在bit地图的绘制区域)?图片可旋转情况上
  详细解决方案

怎么判断是否点中bit地图(触控点落在bit地图的绘制区域)?图片可旋转情况上

热度:19   发布时间:2016-05-01 12:13:05.0
如何判断是否点中bitmap(触控点落在bitmap的绘制区域)?图片可旋转情况下
我用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中的图片四个边的值。
  相关解决方案