欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  技术分享

Android仿美团城市定位选择器_城市地区选择样式源代码下载

程序员文章站 2022-03-01 13:01:26
...

ContactList是一款仿美团城市选择界面、滑动的时候会在屏幕*显示拼音的首字母、效果非常流畅的、并附有定位城市界面的设计、相信一般项目上都可以使用到、下面是Demo运行的效果

Android仿美团城市定位选择器_城市地区选择样式源代码下载


初始化代码

private void InitLocation() {
    // 设置定位参数
    LocationClientOption option = new LocationClientOption();
    option.setCoorType("bd09ll"); // 设置坐标类型
    option.setScanSpan(10000); // 10分钟扫描1次
    // 需要地址信息,设置为其他任何值(string类型,且不能为null)时,都表示无地址信息。
    option.setAddrType("all");
    // 设置是否返回POI的电话和地址等详细信息。默认值为false,即不返回POI的电话和地址信息。
    option.setPoiExtraInfo(true);
    // 设置产品线名称。强烈建议您使用自定义的产品线名称,方便我们以后为您提供更高效准确的定位服务。
    option.setProdName("通过GPS定位我当前的位置");
    // 禁用启用缓存定位数据
    option.disableCache(true);
    // 设置最多可返回的POI个数,默认值为3。由于POI查询比较耗费流量,设置最多返回的POI个数,以便节省流量。
    option.setPoiNumber(3);
    // 设置定位方式的优先级。
    // 当gps可用,而且获取了定位结果时,不再发起网络请求,直接返回给用户坐标。这个选项适合希望得到准确坐标位置的用户。如果gps不可用,再发起网络请求,进行定位。
    option.setPriority(LocationClientOption.GpsFirst);
    mLocationClient.setLocOption(option);
}


a-z排序代码

@SuppressWarnings("rawtypes")
Comparator comparator = new Comparator<City>() {
    @Override
    public int compare(City lhs, City rhs) {
        String a = lhs.getPinyi().substring(0, 1);
        String b = rhs.getPinyi().substring(0, 1);
        int flag = a.compareTo(b);
        if (flag == 0) {
            return a.compareTo(b);
        } else {
            return flag;
        }
    }
};


实现实位回调监听代码

public class MyLocationListener implements BDLocationListener {
    @Override
    public void onReceiveLocation(BDLocation arg0) {
        Log.e("info", "city = "   arg0.getCity());
        if (!isNeedFresh) {
            return;
        }
        isNeedFresh = false;
        if (arg0.getCity() == null) {
            locateProcess = 3; // 定位失败
            personList.setAdapter(adapter);
            adapter.notifyDataSetChanged();
            return;
        }
        currentCity = arg0.getCity().substring(0,
                arg0.getCity().length() - 1);
        locateProcess = 2; // 定位成功
        personList.setAdapter(adapter);
        adapter.notifyDataSetChanged();
    }

    @Override
    public void onReceivePoi(BDLocation arg0) {

    }
}


最后给贴上Demo的源代码、希望对大家有用、有兴趣的哥们可以下载看看

源代码下载链接: LocateCity仿美团城市选择界面 密码: eaa8