我必须在旋转的画布上触摸位图。
在我的onDraw()
中{
paramCanvas.rotate(angle, x, y);
angle+=curving;
}
@覆盖
public boolean onTouch(View v, MotionEvent event)
{
// TODO Auto-generated method stub
float eventX = event.getX();
float eventY = event.getY();
if( MotionEvent.ACTION_DOWN <= event.getAction())
{
if(eventX&gt; = x&amp;&amp; eventX&lt; x + liveAnt.getWidth()
&安培;&安培; eventY&gt; = y&amp;&amp; eventY&lt; y + liveAnt.getHeight()) {
int xDead=x;
int yDead=y;
}
}
return false;
}
我尝试了上面的代码,但它没有正常工作,IF条件并不是每次都成真。
liveAnt是我的位图名称
canvas.drawBitmap(liveAnt,x,y,paint);
答案 0 :(得分:1)
假设您要绘制位图中心位于(px,py)画布坐标的位图。有一个成员变量
Matrix matrix = new Matrix();
并在你的onDraw中:
matrix.reset();
matrix.postTranslate(-bitmap.getWidth() / 2, -bitmap.getHeight() / 2); // Centers image
matrix.postRotate(angle);
matrix.postTranslate(px, py);
canvas.drawBitmap(bitmap, matrix, null);