使用onTouch在画布视图上移动带有矢量的位图

时间:2013-11-12 14:41:06

标签: android eclipse canvas vector bitmap

我试图弄清楚如何使用onTouch方法的输入在画布视图上移动位图。 截至目前,我的位图仅以45°角移动,直到我的位图的一个X或Y坐标与指尖匹配。 有谁知道如何改变其中一个X或Y cooridates的速度,以便它“飞”到手指的位置? 谢谢你的帮助:)

我的onDraw():

protected void onDraw(Canvas canvas){
    super.onDraw(canvas);
    canvas.drawBitmap(BackScaled,0,0,null);
    canvas.drawBitmap(bobScale,meX-bobScale.getWidth(),meY - bobScale.getHeight(),null);
    canvas.drawBitmap(grunScale,700,10,null);

    if(touched == 1 && meX<= pressX && fliegen == 0){   
        meX = meX+ (width /300);    
    }

    if(touched == 1 && meX >=pressX &&fliegen == 0){
        meX = meX- (width / 300);       
    }

    if(meX >= width -(width/6)){    
        paint.setColor(Color.WHITE);
        paint.setStyle(Style.FILL);
        canvas.drawText("The door is closed", 600, 350, paint);
    }

    if(pressX >= 700 && pressX < 800 && pressY >= 10 && pressY <= 110){
        fliegen = 1;
    }

    if(meX<= pressX && meY >= pressY && fliegen == 1 &&touched ==1){
        meX = meX+4;
        meY = meY-4;
    }

    if(meX>= pressX && meY <= pressY && fliegen == 1 &&touched ==1){
        meX = meX-4;
        meY = meY+4;
    }

    if(meX >= pressX && meY >=pressY && fliegen == 1 && touched == 1){

    }
    invalidate();
}

onTouch:

public boolean onTouch(View v, MotionEvent me) {
    if (me.getAction() == MotionEvent.ACTION_DOWN){  

            touched = 1;
             pressX = (int)me.getX();
             pressY = (int)me.getY();       
    }

    if(me.getAction()== MotionEvent.ACTION_MOVE);{
        touched = 1;
        pressX = (int)me.getX();
        pressY = (int)me.getY();

    }
    if(me.getAction() == MotionEvent.ACTION_UP){
        touched = 0;
    }
    return true;
}

如果您还有其他问题要回答我的问题,请随时提出要求!

1 个答案:

答案 0 :(得分:0)

我在之前构建的应用程序中使用了本教程。试着真正理解他在做什么,你会找到答案。

http://mobile.tutsplus.com/tutorials/android/android-sdk-creating-a-rotating-dialer/