我有一个位图图像,我正在尝试对其进行命中测试。如果它只是一个普通的位图,命中测试就可以工作。但我需要旋转和缩放位图,我似乎无法正确地计算出命中测试。
x 和 y 这里是光标 x 和 y。我需要检查是否在操纵的位图中单击了光标(手指按下)。规模似乎工作正常,但旋转似乎没有影响。
float[] pts = new float[4];
float left = m.getX();
float top = m.getY();
float right = left + mBitmaps.get(i).getWidth();
float bottom = top + mBitmaps.get(i).getHeight();
pts[0] = left;
pts[1] = top;
pts[2] = right;
pts[3] = bottom;
float midx = left + mBitmaps.get(i).getWidth()/2;
float midy = top + mBitmaps.get(i).getHeight()/2;
Matrix matrix = new Matrix();
matrix.setRotate(m.getRotation(), midx, midy);
matrix.setScale(m.getSize(), m.getSize(), midx, midy);
matrix.mapPoints(pts);
if(x >= pts[0] && x <= pts[2] && y >= pts[1] && y <= pts[3])
{
return i;
}