尝试构建磁罗盘,我有以下代码。
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.我想绘制另一张图片(图片顶部的指示符),我可以这样做吗?我在图像视图中已经有一个罗盘图像,我想在顶部绘制另一个图像。我无法重绘整个视图。我怎样才能实现它?
答案 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为您提供了很多细节和操作图像的方法,这些操作很容易让您做任何您需要的事情。