2012-03-12 6 views
0

RECT使用していますdrawBitmap今私はそれが働くようにそれは私がそれが好きなように前後に回転するので、一体どのように今私はそれを画面上に配置するのですか? HERESにコードこれまで:アンドロイドポジショニング私は前後に画像を回転させる方法を見つけるために、このサイトを通じて検索し、このサイト上の他のポストの助けを借りて、私自身を思い付いた、それは素晴らしい作品、唯一の問題はある

通常drawBitmapと私は私の画像を配置するためにそれを使用しますが、この1つは今、それは素晴らしい作品が、私はどのように変化するであろう、代わりに矩形のサイズはsrcとdstを使用しています
private Bitmap ray; 
    private int mRot = -33; 
    private boolean goRight = true; 

    void onRotDraw(Canvas canvas) 
    { 
     int width = ray.getWidth(); 
     int height = ray.getHeight(); 

     if (mRot > 30){ 
      goRight = false; 
     } 
     if (mRot < -30){ 
      goRight = true; 
     } 
     if (goRight){ 
      mRot += 1; 
     }else 
     { 
      mRot -= 1; 
     } 
       canvas.rotate(mRot,width/2,height/2); 
       this.Draw_Sprite(canvas, 0, mRot); 

    } 

    public void Draw_Sprite(Canvas c, int whatever, int rot) { 
     //rotating image back and forth 
     int width = ray.getWidth(); 
     int height = ray.getHeight(); 
     Rect src = new Rect(width - width, height - height, width, height); 
     Rect dst = new Rect(width - width, height - height, width, height); 
     c.drawBitmap(this.ray, src, dst, null); 
    } 

画面上の0,0から私が行きたい位置までの位置?

これは、このポストからの一部または大部分が撮影された:私は、私は、これはこれで任意のヘルプは大幅になり、画面上でのxとyの位置を設定する方法を除いて軌道に乗るために必要なすべてを与えた Sprite Rotation in Android using Canvas.DrawBitmap. I am close, what am I doing wrong?

私はこのセットをxとyの位置に運が無く、おそらく何かで得られる方法を見つけ出そうと、頭を壊してしまいました。 ありがとうございます。

答えて

0

これは、あなたが参照している他のポストからのコードの一部です:

Rect src = new Rect(0, 0, width, height); 
Rect dst = new Rect(x, y, x + width, y + height); 

それは、ビットマップの位置を決定DSTのRectでxとyです。

あなたのコード:幅ため

Rect src = new Rect(width - width, height - height, width, height); 
Rect dst = new Rect(width - width, height - height, width, height); 

は常に0、0でそれを描画するつもりです - 幅が0と高さになります - 高さは私の愚かだっ0

+0

なり、[OK]を私はこの部分はありがたいですが、今は別の問題に立ち向かいました.dstを設定して、今度は正しく回転しないすべてのものに50を追加します。srcとdstの両方に同じ番号を追加しても、すべてのウンキー(もしそれが単語である)しかし、私はそれらが持っているように私はそれが美しく回転しているように、これはスケーリングの問題ですか?私は、DST = newRect(50,50,50 +幅、50 +高さ) – user870286

+0

は、私はバカだ気にしない試してみました笑私はうまくcanvas.rotateとして他の部分に50を追加するのを忘れ(mRot、50 +(幅/ 2 )、50 +(高さ/ 2));それはすべて素晴らしい今、私のためにこの簡単な1つに答えるために感謝します、私はあなたがこれのために取った時間を感謝します。 – user870286

関連する問題

 関連する問題