2015-01-25 3 views
0

Aoa. Я столкнулся с проблемой androird surfaceView. Я пытаюсь оживить шар, изменив его координаты x, y. Но мяч исчезает ... Пожалуйста, смотрите код и определить проблему, regards.`android-SurfaceView: «Объект исчезает»

защищен недействительным OnDraw (холст холст) {

super.onDraw(canvas); 
    canvas.drawBitmap(tile1, axisX, axisY,null);  //LINE ONE objects 
    canvas.drawBitmap(tile2, axisX+78, axisY,null); 
    canvas.drawBitmap(tile3, axisX+156, axisY,null); 
    canvas.drawBitmap(tile4, axisX+234, axisY,null); 


    canvas.drawBitmap(movingStick, (mWidth-movingStick.getWidth())/2, mHeight-200,null); 
    canvas.drawBitmap(mBall, balCurrPosX,balCurrPosY ,null); 

} 

// нить код

Thread t=new Thread(new Runnable() { 

    private boolean moveUp = true; 


    @Override 
    public void run() { 
     // TODO Auto-generated method stub 
     try{ 

      while (true) { 
      if (balCurrPosY >= mHeight){ 
       moveUp= false; 
      }else if(balCurrPosX<=0){ 
       moveUp = true; 
      } 
      if(moveUp) 
       balCurrPosY--; 
      else 
       balCurrPosY++; 
      Thread.sleep(2000); 
      postInvalidate(); 
      } 


     } catch (InterruptedException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
     } 
    } 
});` 
+0

Вы перерисовываете весь экран каждый раз? Кроме того, если вы собираетесь переопределить 'onDraw()', вы должны использовать пользовательский вид, а не SurfaceView. – fadden

ответ

0

Вы забыли начать свою новую тему в конце кода:

 } catch (InterruptedException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
     } 
    } 
}).start(); 
Смежные вопросы