2016-11-13 4 views
0

私のプロジェクト用にキャンバスをアニメーション化しましたが、「空からビットマップ描画可能に変換できません」というエラーが表示されます。不具合はどこですか?コンテキストの場合アニメーションキャンバスエラー:voidからビットマップ描画可能に変換できません

BitmapDrawable circle = (BitmapDrawable) canvas.drawCircle(canvas.getWidth()/2, (float) (canvas.getHeight()/1.8), 13, black); 

、これはコード

protected void onDraw(Canvas canvas) { 

     Paint black = new Paint(Color.BLACK); 

     BitmapDrawable circle = (BitmapDrawable) canvas.drawCircle(canvas.getWidth()/2, (float) (canvas.getHeight()/1.8), 13, black); 
     if (x<0 && y <0) { 
      x = this.getWidth()/2; 
      y = this.getHeight()/2; 
     } else { 
      x += xVelocity; 
      y += yVelocity; 
      if ((x > this.getWidth() - circle.getBitmap().getWidth()) || (x < 0)) { 
       xVelocity = xVelocity*-1; 
      } 
      if ((y > this.getHeight() - circle.getBitmap().getHeight()) || (y < 0)) { 
       yVelocity = yVelocity*-1; 
      } 
     } 
     canvas.drawBitmap(circle.getBitmap(), x, y, null); 

     h.postDelayed(r, FRAME_RATE); 


    } 
+0

@MikeMにそれを変更しようとすると、浮動小数点数でなければなりません。どのように私はそれを解決するのですか? –

+0

私は実際にキャンバスをアニメーション化しようとしましたが、この方法で動作すると思っていました。どのように私はそれを変更する必要が知っていますか? –

+0

はい、私は実際には真ん中で始めて左から右にまっすぐに跳ね返りたいのですが、最初はランダムなバウンスで試しました。私はそれを変更する必要がありますか?私はちょうど色の部分でエラーを取得します –

答えて

0

の完全な抜粋であるあなたの半径パラメータは13F

drawCircle(float cx, float cy, float radius, Paint paint) 

BitmapDrawable circle = (BitmapDrawable) canvas.drawCircle(canvas.getWidth()/2, (float) (canvas.getHeight()/1.8), 13f, black); 
+0

実際には、「ペイントペイント」パラメータでエラーが発生します。数字は正しいはずですか?そうではありませんか? –

+0

黒の代わりにタイプしようとする - > Color.BLACK –

+0

私はあなたの黒のコードがわからない、 –

関連する問題