【问题标题】:Canvas zooming in android画布在android中放大
【发布时间】:2020-11-22 17:25:45
【问题描述】:

对于我的项目,我使用画布显示两个图像,并尝试根据手指的位置进行放大,但是在到达那里之前,当我单击图像时,它给了我一个布尔错误,我不明白这一点我需要做的事

private void drawBitmap(Canvas canvas) {
    canvas.save();
    canvas.translate(mPositionX,mPositionY);
    canvas.scale(mScaleFactor,mScaleFactor);
    canvas.drawBitmap(background,null,rect,null);
    canvas.drawBitmap(tank,(dWidht/2-tankWidth/2),dHeight-tankHeight,null);
    canvas.restore();
}

  public boolean onTouchEvent(MotionEvent event){
  mScaleDetector.onTouchEvent(event);
  switch (event.getAction()){
case MotionEvent.ACTION_DOWN:
    refX =event.getX();
    refY=event.getY();

    paint((int)((refX-mPositionX)/mScaleFactor),(int)((refY-mPositionY)/mScaleFactor));
break;

case MotionEvent.ACTION_MOVE:
    float nX=event.getX();
    float nY=event.getY();

    mPositionX += nX-refX;
    mPositionY +=nY-refY;
    refX=nX;
    refY=nY;
    invalidate();
 }        
   return true;
}

这是错误

2020-11-22 17:58:06.788 21138-21138/? E/InputEventReceiver: Exception dispatching input event.
2020-11-22 17:58:06.788 21138-21138/? E/MessageQueue-JNI: Exception in MessageQueue callback: 
handleReceiveCallback
2020-11-22 17:58:06.789 21138-21138/? E/MessageQueue-JNI: java.lang.NullPointerException: 
Attempt to invoke virtual method 'boolean 
android.view.ScaleGestureDetector.onTouchEvent(android.view.MotionEvent)' on a null object 
reference
    at com.example.myapplication.GameView.onTouchEvent(GameView.java:92)
    at android.view.View.dispatchTouchEvent(View.java:13551)
    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3088)
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2724)
    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3088)
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2724)
    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3088)
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2724)
    at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:497)
    at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1853)
    at android.app.Activity.dispatchTouchEvent(Activity.java:4061)
    at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:455)
    at android.view.View.dispatchPointerEvent(View.java:13812)
    at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:5649)
    at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:5449)
    

【问题讨论】:

    标签: android canvas bitmap zooming


    【解决方案1】:

    问题解决了,我完全重写了我的代码

    【讨论】:

      猜你喜欢
      • 2016-11-15
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      • 1970-01-01
      • 2016-05-09
      • 1970-01-01
      • 2016-03-23
      • 2020-09-09
      相关资源
      最近更新 更多