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

发布于 2024-12-21 11:51:36 字数 742 浏览 1 评论 0原文

我正在尝试使用类似指南针的东西,传递经度/纬度值以使其指向特定位置,我的代码可以在移动手机(使用 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;

}

I'm trying to use something like a compass, passing it longitude/latitude values to let it point to a specific location, my code can draw an arrow while moving the phone (using GPS) to determine the location.

I want to use an image instead of the drawing thing

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;

}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

无语# 2024-12-28 11:51:37

您需要做两件事:

  1. 旋转指针图像
  2. 将生成的位图绘制到屏幕上。

有一些技巧,在程序启动时预先旋转图像可能比每次绘制时旋转图像更快;但它也需要更多的内存。

You need to do two things:

  1. Rotate the pointer image
  2. Draw the resulting bitmap to screen.

A few tricks, it might be faster to pre-rotate the image when your program starts up rather than rotating it every time you draw; however it would also take more memory.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文