问题图像不能在静态360度位置旋转

时间:2013-01-17 07:48:59

标签: java android graphics matrix

我已经构建了一个指南针应用程序,我希望在一个固定位置将图像旋转360°。所以我拿了一个矩阵来旋转特定角度的图像。像这样:

Matrix matrix = new Matrix();
matrix.postRotate(direction);
Bitmap originalImage = BitmapFactory.decodeResource(getResources(), 
R.drawable.resources_compass_arrow);

matrix.postTranslate(cxCompass, cyCompass);
canvas.drawBitmap(originalImage, matrix, paint);

但问题是:当我运行它时,它会在不同的位置旋转(它会改变位置),而且我需要的罗盘方向也不准确。

这是传感器更改代码:

public void onSensorChanged(SensorEvent event)
{
    myCompassView.updateDirection((float)event.values[0]);
}

是否有适用的公式并完美旋转图像?你能解决这个问题吗...谢谢

更新:

以下是更多信息的屏幕

enter image description here

更新方向

public void updateDirection(float dir) {
        firstDraw = false;
        direction = dir;
        Log.e(VIEW_LOG_TAG, "direction"+direction);
        invalidate();
    }

Compute Compass x&是的:

int cxCompass = getMeasuredWidth() / 2;
int cyCompass = getMeasuredHeight() / 2;

更新::

enter image description here enter image description here

1 个答案:

答案 0 :(得分:1)

这里是链接,它显示了如何旋转图像: http://android-er.blogspot.in/2010/07/rotate-bitmap-image-using-matrix.html

只需查看此链接并根据您的要求进行修改。此链接仅显示图像的旋转,它只是您问题的参考而不是正确的答案。