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:列表视图中的指南针+距离 的相关文章

随机推荐

  • 在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 坐标列表来实现相同的功能 但这看起来非常复杂 制作带有距离和小箭头的列表视图非常容易 但我不明白如何在用户每次移动手机