我已经构建了一个指南针应用程序,我希望在一个固定位置将图像旋转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]);
}
是否有适用的公式并完美旋转图像?你能解决这个问题吗...谢谢
更新:
以下是更多信息的屏幕
更新方向
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;
更新::
答案 0 :(得分:1)
这里是链接,它显示了如何旋转图像: http://android-er.blogspot.in/2010/07/rotate-bitmap-image-using-matrix.html
只需查看此链接并根据您的要求进行修改。此链接仅显示图像的旋转,它只是您问题的参考而不是正确的答案。