-1

我必须触摸旋转画布上的位图。

在我的 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 >= x && eventX < x +liveAnt.getWidth()

&& eventY >= y && eventY < y + liveAnt.getHeight()) {

                        int xDead=x;
                        int yDead=y;



                         }
                         }  

                 return false;
            }

我尝试了上面的代码,但它不能正常工作,IF 条件每次都不是真的。

liveAnt 是我的位图名称

canvas.drawBitmap(liveAnt, x,y, 油漆);

4

1 回答 1

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);
于 2013-09-07T09:35:35.120 回答