使用指向特定位置的GPS值在Android中旋转图像

时间:2011-12-17 14:34:32

标签: android gps drawing rotation compass-geolocation

我正在尝试使用类似指南针的东西,传递经度/纬度值以使其指向特定位置,我的代码可以在移动手机时使用箭头绘制箭头(使用GPS)来确定位置。

我想使用图像而不是绘图的东西

public void draw(Canvas canvas) {
        double angle = calculateAngle(currentLongitude, currentLatitude, targetLongitude, targetLatitude);
        //Correction;
        angle-=90;

    //Correction for azimuth
    angle-=azimuth;

    if((getContext() instanceof Activity) && ((Activity)getContext()).getWindowManager().getDefaultDisplay().getOrientation()==Configuration.ORIENTATION_PORTRAIT)angle-=90;

    while(angle<0)angle=angle+360;

    Rect rect = canvas.getClipBounds();

    int height = rect.bottom-rect.top;
    int width = rect.right-rect.left;
    int left = rect.left;
    int top = rect.top;

}

1 个答案:

答案 0 :(得分:0)

你需要做两件事:

  1. Rotate the pointer image
  2. 将生成的位图绘制到屏幕上。
  3. 一些技巧,在程序启动时预先旋转图像可能会更快,而不是每次绘制时都旋转图像;但它也需要更多的记忆。