Android:列表视图中的指南针+距离

2023-11-23

我想你们都尝试过地图中的“Google Places”。 这是您附近的 POI 列表。

我真的很想在我的应用程序中使用 GPS 坐标列表来实现相同的功能,但这看起来非常复杂。

制作带有距离和小箭头的列表视图非常容易,但我不明白如何在用户每次移动手机时更新此列表和箭头。

现在我有一个静态列表视图。

alt text

我想知道是否有人成功创建这样的列表视图。

非常感谢您提供任何信息。


对于您想要实现的目标,有几种选择。就个人而言,我建议实现您自己的适配器(在这种情况下最有可能通过扩展 SimpleCursorAdapter)并将距离文本和罗盘标题旋转的更新封装在其中。

为了帮助进行资源管理,您可能需要在托管 ListView 的 Activity 中创建 SensorListener 和 LocationListener。每当您收到更新时,请致电您的自荐updateCompassAndLocationAdapter 类中的方法。

在该方法中,您有两个选择。要么迭代构成所表示的数据集合的每个项目并修改指南针图形和距离文本,要么简单地将当前位置和航向记录为类中的变量,然后调用notifyDataSetChanged强制适配器更新视图本身getView方法。无论哪种情况(尤其是后者),您都需要在 getView 中设置距离文本和航向指南针值。

@Override
public View getView(int position, View convertView, ViewGroup parent) {
  LinearLayout myView;

  MyPOI item = getItem(position);

  Location poiLocation = item.getLocation;

  int compassHeading = // Calculate heading relative to current heading
  float distance = // Calculate distance to POI


  if (convertView == null) {
    myView = new LinearLayout(getContext());
    String inflater = Context.LAYOUT_INFLATER_SERVICE;
    LayoutInflater vi = (LayoutInflater)getContext().getSystemService(inflater);
    vi.inflate(resource, myView, true);
  } else {
    trainView = (LinearLayout) convertView;
  }

  TextView distanceView = (TextView)trainView.findViewById(R.id.distance);
  ImageView compassView = (ImageView)trainView.findViewById(R.id.compass);

  distanceView.setText(String.valueOf(distance);
  compassView.setImageLevel(compassHeading);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android:列表视图中的指南针+距离 的相关文章

  • Spring @RequestMapping 带有可选参数

    我的控制器在请求映射中存在可选参数的问题 请查看下面的控制器 GetMapping produces MediaType APPLICATION JSON VALUE public ResponseEntity
  • Ubuntu 16.04 - Genymotion:找不到 /dev/hw_random

    I install Genymotion on the Ubuntu 16 04 64Bit I created a virtual emulator for Android 6 0 then I run this emulator but
  • Java按日期升序对列表对象进行排序[重复]

    这个问题在这里已经有答案了 我想按一个参数对对象列表进行排序 其日期格式为 YYYY MM DD HH mm 按升序排列 我找不到正确的解决方案 在 python 中使用 lambda 很容易对其进行排序 但在 Java 中我遇到了问题 f
  • 在两个活动之间传输数据[重复]

    这个问题在这里已经有答案了 我正在尝试在两个不同的活动之间发送和接收数据 我在这个网站上看到了一些其他问题 但没有任何问题涉及保留头等舱的状态 例如 如果我想从 A 类发送一个整数 X 到 B 类 然后对整数 X 进行一些操作 然后将其发送
  • Android Studio 0.4.3 Eclipse项目没有gradle

    在此版本之前 在 Android Studio 中按原样打开 Eclipse 项目似乎很容易 无需任何转换 我更喜欢 Android Studio 环境 但我正在开发一个使用 eclipse 作为主要 IDE 的项目 我不想只为这个项目下载
  • 字符串数组文本格式化

    我有这个字符串 String text Address 1 Street nr 45 Address 2 Street nr 67 Address 3 Street nr 56 n Phone number 000000000 稍后将被使用
  • JRE 系统库 [WebSphere v6.1 JRE](未绑定)

    将项目导入 Eclipse 后 我的构建路径中出现以下错误 JRE System Library WebSphere v6 1 JRE unbound 谁知道怎么修它 右键单击项目 特性 gt Java 构建路径 gt 图书馆 gt JRE
  • 如何在控制器、服务和存储库模式中使用 DTO

    我正在遵循控制器 服务和存储库模式 我只是想知道 DTO 在哪里出现 控制器应该只接收 DTO 吗 我的理解是您不希望外界了解底层域模型 从领域模型到 DTO 的转换应该发生在控制器层还是服务层 在今天使用 Spring MVC 和交互式
  • Eclipse Java 远程调试器通过 VPN 速度极慢

    我有时被迫离开办公室工作 这意味着我需要通过 VPN 进入我的实验室 我注意到在这种情况下使用 Eclipse 进行远程调试速度非常慢 速度慢到调试器需要 5 7 分钟才能连接到远程 jvm 连接后 每次单步执行断点 行可能需要 20 30
  • Java执行器服务线程池[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如果我使用 Executor 框架在
  • 增加活动的屏幕亮度

    显然 Android 操作系统中至少有三种不同的技术可以改变屏幕亮度 其中两个在纸杯蛋糕之后不再起作用 而第三个被接受的技术显然有一个错误 我想在单视图活动开始时增加屏幕亮度 然后在活动结束时将亮度恢复为用户设置 没有按钮 没有第二个视图或
  • 获取 JVM 上所有引导类的列表?

    有一种方法叫做findBootstrapClass对于一个类加载器 如果它是引导的 则返回一个类 有没有办法找到类已经加载了 您可以尝试首先通过例如获取引导类加载器呼叫 ClassLoader bootstrapLoader ClassLo
  • 静态变量的线程安全

    class ABC implements Runnable private static int a private static int b public void run 我有一个如上所述的 Java 类 我有这个类的多个线程 在里面r
  • 编译器抱怨“缺少返回语句”,即使不可能达到缺少返回语句的条件

    在下面的方法中 编译器抱怨缺少退货声明即使该方法只有一条路径 并且它包含一个return陈述 抑制错误需要另一个return陈述 public int foo if true return 5 鉴于Java编译器可以识别无限循环 https
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591
  • Firebase 添加新节点

    如何将这些节点放入用户节点中 并创建另一个节点来存储帖子 我的数据库参考 databaseReference child user getUid setValue userInformations 您需要使用以下代码 databaseRef
  • 将 Intent 包装在 LabeledIntent 中以用于显示目的

    要求 我的应用程序中有一个 共享 按钮 我需要通过 Facebook 分享 我需要选择是否安装原生 Facebook 应用程序 我们的决定是 如果未安装该应用程序 则将用户发送到 facebook com 进行分享 当前状态 我可以检测何时
  • 当我从 Netbeans 创建 Derby 数据库时,它存储在哪里?

    当我从 netbeans 创建 Derby 数据库时 它存储在哪里 如何将它与项目的其余部分合并到一个文件夹中 右键单击Databases gt JavaDB in the Service查看并选择Properties This will
  • 如何将 google+ 登录集成到我的 Android 应用程序中?

    大家好 实际上我需要通过我的应用程序从 google 登录人们 现在我阅读了 google 上的文档 其中指出 要允许用户登录 请将 Google Sign In 集成到您的应用中 初始化 GoogleApiClient 对象时 请求 PL
  • 节拍匹配算法

    我最近开始尝试创建一个移动应用程序 iOS Android 它将自动击败比赛 http en wikipedia org wiki Beatmatching http en wikipedia org wiki Beatmatching 两

随机推荐

  • 在anaconda3中安装openCV - Python.h:没有这样的文件或目录

    我正在尝试为我的 anaconda3 安装构建 opencv 3 1 0 但我的构建失败 94 Building CXX object modules python3 CMakeFiles opencv python3 dir src2 c
  • 使用 CLI 清除客户端缓存

    我们正在使用aurelia cli 任务包括 build json build ts process css ts process markup ts process sass ts run json run ts test json te
  • Scrapy PyInstaller OSError:无法获取源代码/twisted.internet.defer._DefGen_Return

    我正在尝试使用 PyInstaller 将一个非常简单的 Scrapy 蜘蛛发布为 EXE 文件 我已经搜索并阅读了我能找到的所有内容 但我仍然无法弄清楚出了什么问题 我怎样才能解决这个问题 如果我将yield更改为return 它不会给我
  • 在 Freemarker 宏中模拟空参数

    我正在使用 Freemarker 构建一个网站 并开始大量使用宏 我知道在 Freemarker 2 3 中 将 null 值作为参数传递到宏中相当于根本不传递参数 因此我创建了一个名为 null 的全局变量来模拟宏中的 null 检查 l
  • C 预处理器将“int x”拆分为 int & x

    我需要能够获得以下内容 define MY MACRO PARAM1 PARAM2 MY OTHER MACRO TYPENAME OF PARAM1 PARAMNAME OF PARAM1 MY OTHER MACRO TYPENAME
  • 集合的伪随机遍历

    我一直在读游戏编码完成 第四版 我在理解第 3 章 有用东西的抓取袋 部分中的 集合的伪随机遍历 路径时遇到了一些问题 您是否想知道 CD 播放机上的 随机 按钮是如何工作的 它会随机播放 CD 上的每首歌曲 而不会播放同一首歌曲两次 这是
  • android tv - 重新加载适配器数据

    我想重新加载浏览片段中的一些行数据 基本上我想重置适配器数据而不在浏览片段中造成类似闪存的效果 知道如何做到吗 就像是notifyDataSetChanged 在列表视图中 Thanx 这将刷新数据而不丢失当前位置 for int i 0
  • 监视 Windows 中进程执行的某些系统调用

    我希望能够监视进程进行的某些系统调用 主要是文件 I O 调用 在Linux上我可能可以使用strace具有合适的参数 但如何在 Windows 上执行此操作 我主要感兴趣的是运行一个进程并找出它已读取和写入的文件 我想从另一个进程以编程方
  • 继承自Set.prototype

    这真的很困扰我 我可以轻松创建一个继承方法的新类Array prototype var MyArray function MyArray prototype Array prototype var myArray new MyArray m
  • 如何在 DDEV Web 容器中添加和使用 nvm?

    目前 DDEV Web 容器不附带 nvm 节点版本管理器 如何通过 DDEV config yaml 文件添加和使用它 在当前的 ddev v1 19 中 默认安装了 nvm 并且可以与ddev nvm 所以您不必执行任何操作 看docs
  • Python:导入模块导入模块

    所以在文件 foo 中我导入模块 import lib helper functions import lib config 在 helper functions py 中 我有 import config 当我运行 foo 的 main
  • Jmeter中的吞吐量计算

    Attached is the Summary Report for my tests 请帮我理解JMeter的吞吐量值是如何计算的 例如第一条线路的吞吐量53 1 min 这个数字是JMeter用什么公式计算出来的 另外 想知道后续测试中
  • 我如何通过 Objective-c 访问 iPhone 文件?

    我注意到有一些软件 例如 iExplorer 可以让您从 Mac 访问 iPhone 设备上的文件 现在我的问题是 如何通过 Objective c 访问 iPhone 文件 这仅用于教育目的 我找到了这个 https github com
  • 如何知道应用程序运行在什么 Mac 操作系统上?

    我在一些项目中看到过类似的东西 if code endif 但我现在找不到了 例如 如果应用程序在 10 8 上运行 则该应用程序会执行 1 件事 否则该应用程序会执行其他操作 编写什么代码来检查它是否在 10 8 上运行 Thanks 你
  • Mod重写问题

    和其他许多人一样 我在 apache 中进行一些非常简单的 mod rewriting 时遇到了问题 我的 htaccess 中有以下内容 Options FollowSymLinks RewriteEngine on RewriteBas
  • 如何将 Rust 内存分配器用于可提供分配器的 C 库?

    我正在编写与 C 库的 Rust 绑定 该库可以选择使用第三方内存分配器 它的界面如下所示 struct allocator void alloc void old uint void free void 我猜 相应的 Rust 结构如下
  • 当 MKMapView 显示UserLocation == YES 时隐藏 MKUserLocation

    设置后mapView showsUserLocation为 true 是否可以在不显示 MKUserLocation 气泡的情况下接收位置更新 返回零mapView viewForAnnotation 只是显示气泡 返回任何其他类型的注释会
  • 选择的图库默认项目位于中心[重复]

    这个问题在这里已经有答案了 可能的重复 android图库图像位置问题 我在我的应用程序中使用图库视图 现在当我运行代码时 图库默认选择的项目为 1 位于中心 左侧为空白 相反 我不希望左侧有 1 项被选中 此外 单击任何图库项目不应将该项
  • std::unique_ptr 的“无抛出取消引用”

    我用 C 编写代码 使用std unique ptr u处理一个std string资源 我想取消引用u这样我就可以通过std string的电话std string复制构造函数 std string copy new std string
  • Android:列表视图中的指南针+距离

    我想你们都尝试过地图中的 Google Places 这是您附近的 POI 列表 我真的很想在我的应用程序中使用 GPS 坐标列表来实现相同的功能 但这看起来非常复杂 制作带有距离和小箭头的列表视图非常容易 但我不明白如何在用户每次移动手机