0

モーションセンサーで画像を回転させるようなアプリケーションを試しています....私の問題は、画像が中心を中心に適切に回転しないことです....そして、私の角度範囲は0から90と0から-90です..そして以下は私のものですコード.....

public void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    Bitmap arrow = BitmapFactory.decodeResource(getResources(),R.drawable.arrow);
    int arrowW = arrow.getWidth();
    int arrowH = arrow.getHeight();
    float scaleWidth = 1;
    float scaleHeight = 1;
    int centrex = arrowW/2;
    int centrey = arrowH/2;
    int X=108;
    int Y=100;
    int angle=0;

    Matrix matrix = new Matrix();
    matrix.postScale(scaleWidth, scaleHeight);

    matrix.postRotate(angle, X+centrex , Y+centrey );
    Bitmap resizedBitmap = Bitmap.createBitmap(arrow, 0, 0, arrow.getWidth(), arrow.getHeight(), matrix, true);
    canvas.save();
    canvas.drawBitmap(resizedBitmap, X, Y, null);
    invalidate();
}

onCreate メソッドから角度値を取得しています.....方向センサー (ロール値) を使用しています。

4

1 に答える 1

0

回転はXとYによって関係するべきではありません:

matrix.postRotate(angle、centrex、centery);

于 2012-09-10T13:22:49.740 に答える