在旋转画布上触摸位图

时间:2013-09-07 09:26:43

标签: android canvas bitmap

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

在我的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);

1 个答案:

答案 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);