Android中的磁传感器和图像旋转

时间:2014-04-20 10:15:40

标签: java android

尝试构建磁罗盘,我有以下代码。

public void onSensorChanged(SensorEvent event) {
    imageCompass = (ImageView) findViewById(R.id.imageMapDrawView);
    Bitmap myImg = BitmapFactory.decodeResource(getResources(), R.drawable.compass);
    Matrix matrix = new Matrix();
    matrix.postRotate(event.values[0] );
    Bitmap rotated = Bitmap.createBitmap(myImg, 0, 0, myImg.getWidth(), myImg.getHeight(),
            matrix, true);
    imageCompass.setImageBitmap(rotated);
}

我有以下问题, 答:我猜event.values [0]是度?不是弧度? B.我想从图像视图中获取图像并围绕图像中心旋转图像,我在告诉它? C.我想绘制另一张图片(图片顶部的指示符),我可以这样做吗?我在图像视图中已经有一个罗盘图像,我想在顶部绘制另一个图像。我无法重绘整个视图。我怎样才能实现它?

1 个答案:

答案 0 :(得分:0)

一个。检查http://developer.android.com/reference/android/hardware/SensorEvent.html

值数组的长度和内容取决于正在监视的传感器类型。

Sensor.TYPE_ACCELEROMETER is in m/s²
Sensor.TYPE_MAGNETIC_FIELD is in uT (micro Tesla)
Sensor.TYPE_GYROSCOPE is in rad/s

继续所有传感器(查看链接)。

此外,自API级别3以来,接口SensorListener已弃用。您应该使用SensorEventListener。

B和C.您应该考虑使用OpenGL ES来绘制图像。特别是OpenGL ES 2.0为您提供了很多细节和操作图像的方法,这些操作很容易让您做任何您需要的事情。