0

SurfaceView を拡張するクラスがあります。ビットマップを使用してキャンバスに描いた針のイメージがあります。ボタンをクリックすると、この針を1つの固定点で回転させたいです。針を回転させるロジックは何ですか? ボタンをクリックして onDraw(Canvas canvas) を呼び出し、針を毎回 5 度回転させたいとします。これは私のコードです

    public class PingPongSurfaceView extends SurfaceView implements SurfaceHolder.Callback
    {
      private Bitmap needle = null;

      public PingPongSurfaceView(Context context, AttributeSet attrs) {
            super(context, attrs);
            // TODO Auto-generated constructor stub
            setBackgroundResource(R.drawable.puzzle);

        needle = BitmapFactory.decodeResource(getResources(), R.drawable.sui);


        }

protected void onDraw(Canvas canvas) 
          {
        int needlex =0;
        int needley = 0;

            needlex = (mWidth/2) - needle.getWidth()+9;
    needley = (mHeight - (needle.getHeight()/2)-70);

            canvas.drawBitmap(needle, needlex, needley, null); //Bitmap to be rotate

          }

    }
4

1 に答える 1

7

canvas.save()、次にcanvas.rotate(5, centerX, centerY) canvas.drawBitmap(...) 、次にcanvas.restore()を呼び出す必要があります

于 2013-06-16T21:28:56.250 に答える