Android基于高德地图poi的仿微信获取位置功能实例代码

1.打开页面自动定位,同时搜索周边所有poi

2.点击搜索按钮,输入关键子,获取关键字搜索结果

3。选取listview中的一项即可定位到该位置,或者获取任何消息

4.文件类

1、MapActivity

public class MapActivity extends Activity implements PoiSearch.OnPoiSearchListener {
 private MapView mMapView = null;
 private AMap aMap;
 private MyLocationStyle myLocationStyle;
 //poiSearch相关
 private PoiSearch poiSearch;
 private PoiSearch.Query query;
 boolean isPoiSearched = false; //是否进行poi搜索
 //listview
 private ListView ll;
 ArrayList<PoiItem> arrayList;
 MyAdpter adapter;
 MyHandler myHandler;
 //字体
 Typeface tf;
 //搜索栏
 FrameLayout frameLayout;
 ImageView searchIv;
 EditText searchEt;
 TextView title;
 Button btn;
 ImageView success;
 boolean onSearch = false; //是否打开搜索栏
 ImageView back;
 private double mCurrentLat;
 private double mCurrentLng;
 Map<String, String> currentInfo = new HashMap<>();
 int selectIndex = -1;
 ImageView currentSelectItem = null;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_map);
  findAllView();
  setAllViewOnclickLinster();
  //在activity执行onCreate时执行mMapView.onCreate(savedInstanceState),创建地图
  mMapView.onCreate(savedInstanceState);
  initAMap();
 }
 /**
  * 获取view对象,初始化一些对象
  */
 void findAllView() {
  //获取地图控件引用
  mMapView = (MapView) findViewById(R.id.map);
  frameLayout = (FrameLayout) findViewById(R.id.searchLayout);
  searchEt = (EditText) findViewById(R.id.search_input);
  searchIv = (ImageView) findViewById(R.id.search);
  btn = (Button) findViewById(R.id.search_go_btn);
  success = (ImageView) findViewById(R.id.success);
  back = (ImageView) findViewById(R.id.back);
  //初始化listview
  ll = (ListView) findViewById(R.id.ll);
  arrayList = new ArrayList<>();
  adapter = new MyAdpter();
  ll.setAdapter(adapter);
  //设置标题字体
  tf = Typeface.createFromAsset(getAssets(), "font/f1.ttf");
  (title = (TextView) findViewById(R.id.title)).setTypeface(tf);
  myHandler = new MyHandler();
 }
 /**
  * 设置点击事件
  */
 void setAllViewOnclickLinster() {
  //当搜索图标点击时,切换显示效果
  searchIv.setOnClickListener(new View.OnClickListener() {
   @Override
   public void onClick(View view) {
    if (title.getVisibility() == View.VISIBLE) {
     hideTitle();
    } else if (title.getVisibility() == View.GONE) {
     showTitle();
    }
   }
  });
  //点击搜索按钮时,搜索关键字
  btn.setOnClickListener(new View.OnClickListener() {
   @Override
   public void onClick(View view) {
    String key = searchEt.getText().toString();
    if (!key.trim().isEmpty()) {
     if (currentSelectItem != null) {
      currentSelectItem.setVisibility(View.INVISIBLE);
     }
     searchPoi(key, 0, currentInfo.get("cityCode"), false);
    }
   }
  });
  //使editText监听回车事件,进行搜索,效果同上
  searchEt.setOnKeyListener(new View.OnKeyListener() {
   @Override
   public boolean onKey(View v, int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_ENTER && event.getAction() == KeyEvent.ACTION_UP) {
     String key = searchEt.getText().toString();
     if (!key.trim().isEmpty()) {
      if (currentSelectItem != null) {
       currentSelectItem.setVisibility(View.INVISIBLE);
      }
      searchPoi(key, 0, currentInfo.get("cityCode"), false);
     }
     return true;
    }
    return false;
   }
  });
  //返回处理事件
  back.setOnClickListener(new View.OnClickListener() {
   @Override
   public void onClick(View view) {
    if (onSearch) {
     showTitle();
    } else {
     finish();
    }
   }
  });
  //完成事件
  success.setOnClickListener(new View.OnClickListener() {
   @Override
   public void onClick(View view) {
    //点击ok的处理事件
    //获取数据并返回上一个activity即可
   }
  });
  //listview点击事件
  ll.setOnItemClickListener(new AdapterView.OnItemClickListener() {
   @Override
   public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
    Log.e(ProConfig.TAG, i + "");
    PoiItem item = arrayList.get(i);
    Log.e(ProConfig.TAG, item.getLatLonPoint().toString());
    Log.e(ProConfig.TAG, item.toString());
    Log.e(ProConfig.TAG, item.getAdName());
    //在地图上添加一个marker,并将地图中移动至此处
    MarkerOptions mk = new MarkerOptions();
    mk.icon(BitmapDescriptorFactory.defaultMarker());
    mk.title(item.getAdName());
    LatLng ll = new LatLng(item.getLatLonPoint().getLatitude(), item.getLatLonPoint().getLongitude());
    mk.position(ll);
    //清除所有marker等,保留自身
    aMap.clear(true);
    CameraUpdate cu = CameraUpdateFactory.newLatLng(ll);
    aMap.animateCamera(cu);
    aMap.addMarker(mk);
    //存储当前点击位置
    selectIndex = i;
    //存储当前点击view,并修改view和上一个选中view的定位图标
    ImageView iv = (ImageView) view.findViewById(R.id.yes);
    iv.setVisibility(View.VISIBLE);
    if (currentSelectItem != null) {
     currentSelectItem.setVisibility(View.INVISIBLE);
    }
    currentSelectItem = iv;
    if (onSearch) {
     //退出搜索模式,显示地图
     showTitle();
    }
   }
  });
 }
 /**
  * 初始化高德地图
  */
 void initAMap() {
  //初始化地图控制器对象
  if (aMap == null) {
   aMap = mMapView.getMap();
  }
  //地图加载监听器
  aMap.setOnMapLoadedListener(new AMap.OnMapLoadedListener() {
   @Override
   public void onMapLoaded() {
    //aMap.setMapType();
    aMap.setMyLocationEnabled(true);
    aMap.animateCamera(CameraUpdateFactory.zoomTo(aMap.getMaxZoomLevel() - 1));
   }
  });
  myLocationStyle = new MyLocationStyle();//初始化定位蓝点样式类
  myLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATE);//连续定位、且将视角移动到地图中心点,定位点依照设备方向旋转,并且会跟随设备移动。(1秒1次定位)如果不设置myLocationType,默认也会执行此种模式。
  myLocationStyle.interval(2000); //设置连续定位模式下的定位间隔,只在连续定位模式下生效,单次定位模式下不会生效。单位为毫秒。
  myLocationStyle.radiusFillColor(0x70f3ff);
  myLocationStyle.strokeColor(0xe3f9fd);
  aMap.setMyLocationStyle(myLocationStyle);//设置定位蓝点的Style
  aMap.getUiSettings().setMyLocationButtonEnabled(true);//设置默认定位按钮是否显示,非必需设置。
  aMap.setMyLocationEnabled(true);// 设置为true表示启动显示定位蓝点,false表示隐藏定位蓝点并不进行定位,默认是false。
  aMap.setMaxZoomLevel(aMap.getMaxZoomLevel());
  //地址监听事件
  aMap.setOnMyLocationChangeListener(new AMap.OnMyLocationChangeListener() {
   @Override
   public void onMyLocationChange(Location location) {
    if (!isPoiSearched) {
     Log.e(ProConfig.TAG, location.toString());
     Log.e(ProConfig.TAG, location.getProvider());
     Log.e(ProConfig.TAG, location.getLatitude() + ":" + location.getLongitude());
     //存储定位数据
     mCurrentLat = location.getLatitude();
     mCurrentLng = location.getLongitude();
     String[] args = location.toString().split("#");
     for (String arg : args) {
      String[] data = arg.split("=");
      if (data.length >= 2)
       currentInfo.put(data[0], data[1]);
     }
     //搜索poi
     searchPoi("", 0, currentInfo.get("cityCode"), true);
     //latitude=41.652146#longitude=123.427205#province=辽宁省#city=沈阳市#district=浑南区#cityCode=024#adCode=210112#address=辽宁省沈阳市浑南区创新一路靠近东北大学浑南校区#country=中国#road=创新一路#poiName=东北大学浑南校区#street=创新一路#streetNum=193号#aoiName=东北大学浑南校区#poiid=#floor=#errorCode=0#errorInfo=success#locationDetail=24 #csid:1cce9508143d493182a8da7745eb07b3#locationType=5
    }
   }
  });
 }
 @Override
 public boolean onKeyDown(int keyCode, KeyEvent event) {
  //点击返回键时,将浏览器后退
  if (keyCode == KeyEvent.KEYCODE_BACK) {
   if (onSearch) {
    showTitle();
    return true;
   } else
    return super.onKeyDown(keyCode, event);
  }
  return super.onKeyDown(keyCode, event);
 }
 class MyHandler extends Handler {
  @Override
  public void handleMessage(Message msg) {
   super.handleMessage(msg);
   switch (msg.what) {
    case 0x001:
     //加载listview中数据
     adapter.notifyDataSetChanged();
     break;
   }
  }
 }
 /**
  * 自定义adpter
  */
 class MyAdpter extends BaseAdapter {
  @Override
  public int getCount() {
   return arrayList.size();
  }
  @Override
  public Object getItem(int i) {
   return arrayList.get(i);
  }
  @Override
  public long getItemId(int i) {
   return i;
  }
  @Override
  public View getView(int i, View view, ViewGroup viewGroup) {
   //布局加载器
   LayoutInflater inflater = LayoutInflater.from(MapActivity.this);
   //加载location_item布局
   View view1 = inflater.inflate(R.layout.location_item, null);
   //修改文字和字体
   TextView v1 = (TextView) view1.findViewById(R.id.name);
   TextView v2 = (TextView) view1.findViewById(R.id.sub);
   ImageView iv = (ImageView) view1.findViewById(R.id.yes);
   v1.setText(arrayList.get(i).getTitle());
   v1.setTypeface(tf);
   v2.setText(arrayList.get(i).getSnippet());
   v2.setTypeface(tf);
   if (selectIndex == i) {
    iv.setVisibility(View.VISIBLE);
    currentSelectItem = iv;
   } else {
    iv.setVisibility(View.INVISIBLE);
   }
   return view1;
  }
 }
 /**
  * 搜索poi
  *
  * @param key  关键字
  * @param pageNum 页码
  * @param cityCode 城市代码,或者城市名称
  * @param nearby 是否搜索周边
  */
 void searchPoi(String key, int pageNum, String cityCode, boolean nearby) {
  Log.e(ProConfig.TAG, key);
  isPoiSearched = true;
  query = new PoiSearch.Query(key, "", cityCode);
  //keyWord表示搜索字符串,
  //第二个参数表示POI搜索类型,二者选填其一,
  //POI搜索类型共分为以下20种:汽车服务|汽车销售|
  //汽车维修|摩托车服务|餐饮服务|购物服务|生活服务|体育休闲服务|医疗保健服务|
  //住宿服务|风景名胜|商务住宅|政府机构及社会团体|科教文化服务|交通设施服务|
  //金融保险服务|公司企业|道路附属设施|地名地址信息|公共设施
  //cityCode表示POI搜索区域,可以是城市编码也可以是城市名称,也可以传空字符串,空字符串代表全国在全国范围内进行搜索
  query.setPageSize(50);// 设置每页最多返回多少条poiitem
  query.setPageNum(pageNum);//设置查询页码
  poiSearch = new PoiSearch(this, query);
  poiSearch.setOnPoiSearchListener(this);
  if (nearby)
   poiSearch.setBound(new PoiSearch.SearchBound(new LatLonPoint(mCurrentLat,
     mCurrentLng), 1500));//设置周边搜索的中心点以及半径
  poiSearch.searchPOIAsyn();
 }
 @Override
 public void onPoiSearched(PoiResult poiResult, int i) {
  int index = 0;
  //填充数据,并更新listview
  ArrayList<PoiItem> result = poiResult.getPois();
  if (result.size() > 0) {
   arrayList.clear();
   selectIndex = -1;
   arrayList.addAll(result);
   myHandler.sendEmptyMessage(0x001);
  }
  for (PoiItem item : poiResult.getPois()) {
   Log.e(ProConfig.TAG, item.toString());
   Log.e(ProConfig.TAG, item.getDirection());
   Log.e(ProConfig.TAG, item.getAdName());
  }
 }
 @Override
 public void onPoiItemSearched(PoiItem poiItem, int i) {
 }
 @Override
 protected void onDestroy() {
  super.onDestroy();
  //在activity执行onDestroy时执行mMapView.onDestroy(),销毁地图
  mMapView.onDestroy();
 }
 @Override
 protected void onResume() {
  super.onResume();
  //在activity执行onResume时执行mMapView.onResume (),重新绘制加载地图
  mMapView.onResume();
 }
 @Override
 protected void onPause() {
  super.onPause();
  //在activity执行onPause时执行mMapView.onPause (),暂停地图的绘制
  mMapView.onPause();
 }
 @Override
 protected void onSaveInstanceState(Bundle outState) {
  super.onSaveInstanceState(outState);
  //在activity执行onSaveInstanceState时执行mMapView.onSaveInstanceState (outState),保存地图当前的状态
  mMapView.onSaveInstanceState(outState);
 }
 /**
  * 显示标题栏,即默认状态
  */
 void showTitle() {
  //显示标题栏
  title.setVisibility(View.VISIBLE);
  success.setVisibility(View.VISIBLE);
  searchEt.setVisibility(View.GONE);
  btn.setVisibility(View.GONE);
  frameLayout.setLayoutParams(
    new LinearLayout.LayoutParams(
      LinearLayout.LayoutParams.WRAP_CONTENT,
      LinearLayout.LayoutParams.MATCH_PARENT,
      5));
  mMapView.setVisibility(View.VISIBLE);
  onSearch = false;
  closeKeyboard(this);
 }
 /**
  * 隐藏标题栏,即进行搜索
  */
 void hideTitle() {
  //显示搜索框
  title.setVisibility(View.GONE);
  success.setVisibility(View.GONE);
  searchEt.setVisibility(View.VISIBLE);
  btn.setVisibility(View.VISIBLE);
  frameLayout.setLayoutParams(
    new LinearLayout.LayoutParams(
      LinearLayout.LayoutParams.WRAP_CONTENT,
      LinearLayout.LayoutParams.MATCH_PARENT,
      50));
  mMapView.setVisibility(View.GONE);
  onSearch = true;
 }
 /**
  * 强制关闭软键盘
  */
 public void closeKeyboard(Context context) {
  InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
  if (imm.isActive()) {
   //如果开启
   imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(),
     InputMethodManager.HIDE_NOT_ALWAYS);
   //关闭软键盘,开启方法相同,这个方法是切换开启与关闭状态的
  }
 }
}

2、activity_map.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:background="#e9e7ef"
 android:orientation="vertical"
 tools:context="com.hzstz.mymanager.MapActivity">
 <LinearLayout
  android:layout_width="match_parent"
  android:layout_height="50dp"
  android:layout_weight="1"
  android:background="#009dff"
  android:orientation="horizontal">
  <ImageView
   android:id="@+id/back"
   android:layout_width="30dp"
   android:layout_height="25dp"
   android:layout_gravity="center_vertical"
   android:layout_weight="6"
   android:src="@drawable/left" />
  <TextView
   android:id="@+id/title"
   android:layout_width="wrap_content"
   android:layout_height="match_parent"
   android:layout_weight="80"
   android:gravity="center"
   android:text="@string/app_name"
   android:textColor="#000"
   android:textSize="25dp"
   android:visibility="visible" />
  <FrameLayout
   android:id="@+id/searchLayout"
   android:layout_width="wrap_content"
   android:layout_height="match_parent"
   android:layout_weight="5">
   <EditText
    android:id="@+id/search_input"
    android:layout_width="match_parent"
    android:layout_height="40dp"
    android:layout_gravity="center_vertical"
    android:layout_marginTop="2dp"
    android:hint="@string/app_name"
    android:paddingStart="40dp"
    android:visibility="gone" />
   <ImageView
    android:id="@+id/search"
    android:layout_width="35dp"
    android:layout_height="35dp"
    android:layout_gravity="center_vertical"
    android:paddingStart="10dp"
    android:src="@drawable/search" />
  </FrameLayout>
  <Button
   android:id="@+id/search_go_btn"
   android:layout_width="wrap_content"
   android:layout_height="match_parent"
   android:background="@drawable/cling_button_normal"
   android:text="搜索"
   android:textColor="#fff"
   android:visibility="gone" />
  <ImageView
   android:id="@+id/success"
   android:layout_width="30dp"
   android:layout_height="30dp"
   android:layout_gravity="center_vertical"
   android:layout_margin="5dp"
   android:layout_weight="1"
   android:src="@drawable/yes"
   android:visibility="visible" />
 </LinearLayout>
 <com.amap.api.maps.MapView
  android:id="@+id/map"
  android:layout_width="match_parent"
  android:layout_height="750dp"
  android:layout_weight="100" />
 <ListView
  android:id="@+id/ll"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:layout_weight="90"
  android:background="#ffffff" />
</LinearLayout>

3、location.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:background="#fff"
 android:padding="10dp"
 android:orientation="horizontal">
 <LinearLayout
  android:layout_width="match_parent"
  android:orientation="vertical"
  android:layout_weight="100"
  android:layout_height="wrap_content">
  <TextView
   android:id="@+id/name"
   android:textSize="20dp"
   android:text="大会的反馈撒"
   android:textColor="#000"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content" />
  <TextView
   android:id="@+id/sub"
   android:textSize="15dp"
   android:text="大会的反馈撒"
   android:textColor="#808080"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content" />
 </LinearLayout>
 <ImageView
  android:id="@+id/yes"
  android:layout_width="30dp"
  android:layout_height="30dp"
  android:layout_gravity="center"
  android:src="@drawable/location"/>
</LinearLayout>

总结

以上所述是小编给大家介绍的Android基于高德地图poi的仿微信获取位置功能实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

时间: 2017-12-28

Android实现高德地图显示及定位

本文实例为大家分享了Android实现高德地图显示及定位的具体代码,供大家参考,具体内容如下 先看看效果 1.要实现高德地图的定位,首先要下载高德地图的SDK 下载地址 然后在高德地图官网上登录你注册的账号并且去控制台-–>应用管理-–>添加新key  获取到自己的key值  获取key的具体方法的官网地址 2.通过解压得到.Jar文件并放到libs文件中,手动添加到依赖库中(右键Add--)  3.如果你的地图SDK是3D的需要在main中创建 jniLibs 文件夹并把你解压出来的其他文件

Android中GPS坐标转换为高德地图坐标详解

一.坐标分类 地图坐标大致分为几种: 1.GPS.WGS84,也就是原始坐标体系,这是国际公认的世界标准坐标体系: 2.GCJ-02,又称为"火星坐标",国家测绘局在02年发布的坐标体系,在国内,至少得使用此坐标体系,比如:google.高德.腾讯地图等: 3.其他特殊坐标体系,一般都是由火星坐标通过偏移算法计算得出的,比如百度使用的是BD-09坐标,搜狗使用的是自己的搜狗坐标. 二.坐标转换 1.使用高德地图sdk转换 public AMapLocation fromGpsToAma

Android之高德地图定位SDK集成及地图功能实现

一:百度高德官方网站,然后去创建应用 网址:http://lbs.amap.com/ 1.找到控制台创建一个应用 2.添加key名称,注意命名规范,还有就是下面的SHA1和包名 3.点击右边的Gradle再选择signingReport下面会有个命令,稍等几分钟得到SHA1 4.添加包名 5.得到key 二:下载定位SDK,下载下来有地图SDK和定位SDK,然后导入项目,导入再Add As Library,so文件按自己需求来 下载地址:http://lbs.amap.com/api/andro

Android 高德地图之poi搜索功能的实现代码

废话不多说,先看效果,如果大家感觉不错,请参考实现代码 这个功能我是用Fragmentdialog里面做的,也遇到不少坑 第一,就是设置背景的drawable为纯白色导致键盘弹出的时候,recyclerview的布局被顶上去导致出现白色布局,有点扎眼;最后改成了设置为和背景色一个颜色就和好了 Window window = getDialog().getWindow(); WindowManager.LayoutParams lp = window.getAttributes(); lp.gra

Android高德地图poi检索仿微信发送位置实例代码

最近项目需求把发送定位模块改成类似微信发送位置给好友的效果,我使用了高德地图实现了一个demo,效果图如下: 从主界面中我们可以看到中心标记上面显示的就是我们定位的地址,下面是一个listview列表,第一条item的数据就是我们定位得到的地址,下面其余的都是我们根据定位得到的经纬度通过poi周边搜索得到的地址.我们进行了如下操作: 我们点击列表的item,中心标记会移动到该item对象的地址上面去. 我们手动移动地图的时候,中心标记的地址会发生相应的变化并且下面的列表也会发生相应的变化. 根据

Android基于高德地图完全自定义Marker的实现方法

前言 相信做地图社交类APP开发的大家都知道,一般情况下,为了整体的美观和用户体验度,我们需要定制化Marker的样式.本文中实现的方式都是基于高德地图的,百度地图也类似,大家可以照葫芦画瓢,废话不多说,先来看看最终效果: 实现思路: 先来看看高德官方提供的设置Marker图标的方法: 我们可以看到setIcon()方法,里面的参数BitmapDescriptor就是我们最终需要的东西.那么到底该如何得到这个BitmapDescriptor对象呢,其实很简单,该对象可以通过BitmapDescr

Android 仿高德地图可拉伸的BottomSheet的示例代码

前言 最近项目中需要用到高德地图搜索结果后的结果展示的可拉伸控件. gaode.gif 而我看到这个效果图,觉得这个就是一个slidingpanel,但是翻阅了一些发现用google自带的bottomsheet实现更方便 什么是BottomSheet? Bottom Sheet是Design Support Library23.2 版本引入的一个类似于对话框的控件,可以暂且叫做底部弹出框吧. Bottom Sheet中的内容默认是隐藏起来的,只显示很小一部分,可以通过在代码中设置其状态或者手势操

Android调用高德地图定位的方法

在App中使用地图定位十分常见,购物功能的可以直接定位当前位置,发动态功能可以定位当前位置发出,社交功能可以定位周边用户等等.这里我使用高德地图定位当前位置并显示地址和经纬度. github代码传送门 先上效果图: 实现步骤: 1. 创建应用获取key: 接入第三方无一例外,去高德地图官网注册账号并创建应用.填入包名和keystore的Sha1. 创建应用 获取Sha1,输入命令keytool -v -list -keystore keystore文件路径,我在这里通过控制台获取调试版的: 进入

Android开发之高德地图实现定位

在应用开发中,地图开发是经常需要使用的"组件",Google Map虽然有官方教程,无奈用不起来,原因你懂的~~那么国内比较出名的是就是百度地图和高德地图,由于个人喜好,所以选择了高德地图LBS,废话不说,上干货. 1.注册开发者,创建应用 这个几乎是所有开放平台都通用的做法,无外乎注册帐号,成为开发者,然后创建一个Android应用,会为你分配一个key绑定你的服务. 注册key.PNG 2.下载SDK,导入jar包,add to library jar包.PNG 第一个是2D地图的

关于Android高德地图的简单开发实例代码(DEMO)

废话不多说了,直接给大家上干货了. 以下为初次接触时 ,练手的DEMO import android.app.Activity; import android.app.ProgressDialog; import android.content.ContentValues; import android.database.Cursor; import android.database.SQLException; import android.database.sqlite.SQLiteDatab

Android 百度地图POI搜索功能实例代码

在没介绍正文之前先给大家说下poi是什么意思. 由于工作的关系,经常在文件中会看到POI这三个字母的缩写,但是一直对POI的概念和含义没有很详细的去研究其背后代表的意思.今天下班之前,又看到了POI这三个字母,决定认认真真的搜索一些POI具体的含义. POI是英文的缩写,原来的单词是point of interest, 直译成中文就是兴趣点的意思.兴趣点这个词最早来自于导航地图厂商.地图厂商为了提供尽可能多的位置信息,花费了很大的精力去寻找诸如加油站,餐馆,酒店,景点等目的地,这些目的地其实都可

Vue组件之高德地图地址选择功能的实例代码

注:本文基于上一篇文章[Vue-Cli 3.0 中配置高德地图 ] ,采用直接引入高德 SDK 的方式来使用高德地图api 一.效果图 二.组件要实现的功能 1. 如果有传入坐标点,则定位到坐标点 2. 如果没有传入坐标点,则定位到当前所在位置 3. 定位成功要在右侧显示经纬度和地址 4. 可以通过拖动 标记 来调整定位点 5. 标记 拖动后,右侧要显示拖动后的经纬度和地址 6. 点击确定按钮,返回最后的坐标点和地名给父组件 三. 组件实现具体代码 <template> <div cla

Eclipse+Webservice简单开发实例

1.实例1(主要看到[2]) 1.1.系统功能: 开发一个计算器服务CalculateService,这个服务包含加(plus).减(minus).乘(multiply).除(divide)的操作. 1.2.开发前准备: 安装Eclipse-jee: 下载最新版本的Axis2,网址http://axis.apache.org/axis2/java/core/download.cgi ,选择Standard Binary Distribution的zip包,解压缩得到的目录名axis2-1.4.1

Android自定义水波纹动画Layout实例代码

话不多说,我们先来看看效果: Hi前辈搜索预览 这一张是<Hi前辈>的搜索预览图,你可以在这里下载这个APP查看更多效果: http://www.wandoujia.com/apps/com.superlity.hiqianbei LSearchView 这是一个MD风格的搜索框,集成了ripple动画以及search时的loading,使用很简单,如果你也需要这样的搜索控件不妨来试试:https://github.com/onlynight/LSearchView RippleEverywh

Android自定义view实现太极效果实例代码

Android自定义view实现太极效果实例代码 之前一直想要个加载的loading.却不知道用什么好,然后就想到了太极图标,最后效果是有了,不过感觉用来做loading简直丑到爆!!! 实现效果很简单,我们不要用什么贝塞尔曲线啥的,因为太极无非就是圆圆圆,只要画圆就ok了.来上代码: 因为有黑有白,所以定义2个画笔分别为黑和白. private void inital() { whitePaint = new Paint(); whitePaint.setAntiAlias(true); wh

Android网络状态实时监听实例代码(二)

上篇文章给大家介绍了Android 网络状态实时监听代码实例(一),感兴趣的朋友可以点击了解详情,本文接着给大家介绍android网络状态监听相关知识,具体内容如下所示: 在开发android应用时,涉及到要进行网络访问,时常需要进行网络状态的检查,以提供给用户必要的提醒.一般可以通过ConnectivityManager来完成该工作. ConnectivityManager有四个主要任务: 1.监听手机网络状态(包括GPRS,WIFI, UMTS等) 2.手机状态发生改变时,发送广播 3.当一

Android连接指定Wifi的方法实例代码

本篇文章主要记录一下Android中打开Wifi.获取Wifi接入点信息及连接指接入点的方法. 自己写的demo主要用于测试接口的基本功能,因此界面及底层逻辑比较粗糙. demo的整体界面如下所示: 上图中的OPEN按键负责开启Wifi: GET按键负责获取扫描到的接入点信息. 当获取到接入点信息后,我选取了其中的名称及信号强度,以列表的形式显示在主界面下方,如下图: 当点击列表中的Item时,就会去连接对应的接入点. 自己的逻辑比较简单,测试时的代码,假定连接的是不许要密码或密码已知的接入点.

Android实现沉浸式导航栏实例代码

废话不多说了,直接给大家贴代码了,具体代码如下所示: private SystemBarTintManager tintManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // getWindow().addFlags(WindowManager.Layo

Android实现客户端语音动弹界面实例代码

今天为大家介绍一下语音动弹界面的实现,新版本的客户端大家应该都看过了,这里我就只简单的介绍一下控件布局了.你可以在这里看到本控件的完整源码:http://git.oschina.net/oschina/android-app/blob/master/osc-android-app/src/net/oschina/app/widget/RecordButton.java 首先,整体界面分三部分,最上层自定义ActionBar相信不需要我讲大家就能看出来了. 中间部分是文字动弹部分,主体就是一个设置