java罗盘说明_java – Android:列表视图中的罗盘距离

有几个选择,你想实现什么.就个人而言,我建议您实现自己的适配器(在这种情况下很可能通过扩展SimpleCursorAdapter),并将更新封装在距离文本和罗盘旋转范围内.

为了帮助资源管理,您可能希望在将承载ListView的Activity中创建一个SensorListener和LocationListener.每当您从适配器类中收到更新调用自动滚动的updateCompassAndLocation方法.

从那个方法你有两个选择.对组成所收集数据的每个项目进行迭代,并修改罗盘图形和距离文本,或者简单地将当前位置和标题记录为类中的变量,并调用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);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值