【问题标题】:Touch Bitmap on a Rotating canvas触摸旋转画布上的位图
【发布时间】:2013-09-07 09:26:43
【问题描述】:

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

在我的 onDraw() 中

{

paramCanvas.rotate(angle, x, y);
 angle+=curving;

}

@Override

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

&& eventY >= y && eventY

                        int xDead=x;
                        int yDead=y;



                         }
                         }  

                 return false;
            }

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

liveAnt 是我的位图名称

canvas.drawBitmap(liveAnt, x,y, paint);

【问题讨论】:

    标签: android canvas bitmap


    【解决方案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);
    

    【讨论】:

    • 但是在这里我必须触摸旋转画布上的位图而不是位图旋转
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-03
    • 1970-01-01
    • 2011-07-08
    • 1970-01-01
    • 2014-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多