此文章接上一篇文件:安卓百度地图之定位_zpon_wangxuan的博客-CSDN博客,对于地图上显示定位图标就是在地图上添加一个地图的marker就可以了;

布局文件代码:

<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="@color/bg_color_login"android:orientation="vertical"tools:context=".UnLoginActiviy" ><includeandroid:id="@+id/rl_title"layout="@layout/title_layout" /><com.baidu.mapapi.map.MapViewandroid:id="@+id/bmapView"android:layout_width="match_parent"android:layout_height="match_parent"android:clickable="true" /></LinearLayout>

java文件代码:

package com.meal;import android.Manifest;
import android.app.Activity;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;import com.baidu.location.BDAbstractLocationListener;
import com.baidu.location.BDLocation;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.MapStatus;
import com.baidu.mapapi.map.MapStatusUpdateFactory;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.map.Marker;
import com.baidu.mapapi.map.MarkerOptions;
import com.baidu.mapapi.map.MyLocationData;
import com.baidu.mapapi.model.LatLng;
import com.pony.base.BaseActivity;
import com.pony.util.ToastUtil;import java.util.ArrayList;
import java.util.List;public class ShowMapActivity extends BaseActivity {// titleprivate TextView mTvTitle;// 返回private ImageView mIvBack;String[] permissions = new String[]{Manifest.permission.ACCESS_FINE_LOCATION,Manifest.permission.WRITE_EXTERNAL_STORAGE,};private static final int ACCESS_FINE_LOCATION = 1;private static final int WRITE_EXTERNAL_STORAGE = 2;List<String> mPermissionList = new ArrayList<String>();public LocationClient mLocationClient = null;private MyLocationListener myListener = new MyLocationListener();private MapView mMapView = null;private BaiduMap baiduMap;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_showmap);initWidget();initData();checkPermission();}@Overridepublic void initWidget() {mIvBack = (ImageView) findViewById(R.id.mIvBack);mTvTitle = (TextView) findViewById(R.id.mTvTitle);mTvTitle.setText("地图显示");mIvBack.setVisibility(View.VISIBLE);mIvBack.setOnClickListener(this);mMapView = (MapView) findViewById(R.id.bmapView);baiduMap = mMapView.getMap();baiduMap.setMyLocationEnabled(true);mLocationClient = new LocationClient(getApplicationContext());//声明LocationClient类mLocationClient.registerLocationListener(myListener);LocationClientOption option = new LocationClientOption();option.setIsNeedAddress(true);option.setScanSpan(1000);option.setNeedNewVersionRgc(true);mLocationClient.setLocOption(option);mLocationClient.start();}@Overridepublic void initData() {}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.mIvBack:this.finish();break;}}// 是否首次定位private boolean isFirstLoc = true;public class MyLocationListener extends BDAbstractLocationListener {@Overridepublic void onReceiveLocation(BDLocation location) {//此处的BDLocation为定位结果信息类,通过它的各种get方法可获取定位相关的全部结果//以下只列举部分获取地址相关的结果信息//更多结果信息获取说明,请参照类参考中BDLocation类中的说明String addr = location.getAddrStr();    //获取详细地址信息String country = location.getCountry();    //获取国家String province = location.getProvince();    //获取省份String city = location.getCity();    //获取城市String district = location.getDistrict();    //获取区县String street = location.getStreet();    //获取街道信息String adcode = location.getAdCode();    //获取adcodeString town = location.getTown();    //获取乡镇信息Log.i("poy_log", addr);MyLocationData locData = new MyLocationData.Builder().accuracy(location.getRadius())// 此处设置开发者获取到的方向信息,顺时针0-360.direction(location.getDirection()).latitude(location.getLatitude()).longitude(location.getLongitude()).build();baiduMap.setMyLocationData(locData);if (isFirstLoc) {isFirstLoc = false;
//                LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude());LatLng ll = new LatLng(location.getLatitude(), location.getLongitude());MapStatus.Builder builder = new MapStatus.Builder();builder.target(ll).zoom(15.0f);baiduMap.animateMapStatus(MapStatusUpdateFactory.newMapStatus(builder.build()));}}}@Overrideprotected void onResume() {super.onResume();//在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理mMapView.onResume();}@Overrideprotected void onPause() {super.onPause();//在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理mMapView.onPause();}@Overrideprotected void onDestroy() {super.onDestroy();//在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理mLocationClient.stop();baiduMap.setMyLocationEnabled(false);mMapView.onDestroy();mMapView = null;}private void checkPermission() {for (int i = 0; i < permissions.length; i++) {if (ContextCompat.checkSelfPermission(this, permissions[i]) != PackageManager.PERMISSION_GRANTED) {mPermissionList.add(permissions[i]);}}if (mPermissionList.isEmpty()) {//未授予的权限为空,表示都授予了initWidget();initData();} else {//请求权限方法String[] permissions = mPermissionList.toArray(new String[mPermissionList.size()]);//将List转为数组ActivityCompat.requestPermissions(this, permissions, ACCESS_FINE_LOCATION);}}@Overridepublic void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {if (requestCode == ACCESS_FINE_LOCATION) {if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {initWidget();initData();} else {ToastUtil.show(this, "权限已拒绝");}} else if (requestCode == WRITE_EXTERNAL_STORAGE) {for (int i = 0; i < grantResults.length; i++) {if (grantResults[i] != PackageManager.PERMISSION_GRANTED) {//判断是否勾选禁止后不再询问boolean showRequestPermission = ActivityCompat.shouldShowRequestPermissionRationale(this, permissions[i]);if (showRequestPermission) {ToastUtil.show(this, "权限未申请");}}}}}}

安卓百度地图之定位图标在地图上显示相关推荐

  1. 手机端GSP地图的定位 并且在网页上显示地图的轨迹

    百度地图定位手机端功能开发: 第一步:申请百度的开发者密钥http://developer.baidu.com/map/android-mobile-apply-key.htm 申请到开发API的ke ...

  2. android百度地图更换定位图标,android百度地图定位,改变MyLocationOverlay默认图标(原始为蓝色点)(两种方法)...

    开放地图API无外乎google ,百度,高德等.其它的还有很多,不过比较好用的就这三种了,如果不需要出国(台湾例外),则最好使用百度地图,性能比高德好的多,无聊的时候自己可以测试测试.. 下面我简单 ...

  3. IDEA学习笔记——文件资源定位图标。小齿轮的显示和隐藏(Autoscroll from Source)

    在使用IDEA的时候,因为误操作,将资源定位的小图标整没了,没有头绪,在网上搜索,找了几轮都没有找到,后来自己耐下心来复盘自己的操作,终于发现了,显示或隐藏它的功能是哪个了.在project栏上的设置 ...

  4. android+状态栏显示图标大全,Android应用图标在状态栏上显示实现原理

    一.前方 在研究<Android类似360,QQ管家那样的悬浮窗>突发奇想,想把应用的图标也显示到状态栏上,类似手机QQ,而有消息来时改变状态栏上的图标显示. 二.原理 其实很研究完后,才 ...

  5. Android应用图标在状态栏上显示实现原理

    一.前方 在研究< Android类似360,QQ管家那样的悬浮窗>突发奇想,想把应用的图标也显示到状态栏上,类似手机QQ,而有消息来时改变状态栏上的图标显示. 二.原理 其实很研究完后, ...

  6. android百度地图拖拽地图定位,百度地图的定位以及拖拽(显示坐标位置)

    搜索热词 截图示例 html{height:100%} body{height:100%;margin:0px;padding:0px} #map_canvas{ margin:0 auto; bor ...

  7. 高德地图 搜索定位以及自由滑动地图展示周边位置信息

    emmmm,高德好用 先上些图 搜索出来周围的地址,点击之后,利用正地理编码搜索获取经纬度 效果图 ![这里写图片描述](https://img-blog.csdn.net/2018070610105 ...

  8. android-注释超详细-高德地图实现定位和切换地图类型

    具体实现效果 1.普通模式 2.夜晚模式 3.显示交通 在夜间模式下的交通 4.卫星模式 1.实现基本地图显示 具体可参考上一篇博客安卓开发显示高德地图 2.修改AndroidManifest.xml ...

  9. 字体图标在服务器上显示不出来,fontawesome图标字体库组件在服务器上显示不出来图标的解决...

    这个组件在我所开发的网站中被大量使用,为网站增色不少.在本地测试的时候所有图标都能显示出来,可一到服务器上就显示不出来了.网上查列出了可能的原因.其一,IIS没有注册字体类型.经过检查,不存在这个问题 ...

最新文章

  1. GoJS超详细入门(插件使用无非:引包、初始化、配参数(json)、引数据(json)四步)...
  2. 【CUDA7.5】MATLAB中配置Win7+Matlab R2015b+CUDA7.5+vs2013配置方法
  3. 阿里云ECS服务器搭建wordpress个人博客网站【详细图文教程】
  4. Anaconda更新源失败
  5. 互评Beta版本(Hello World!——SkyHunter)
  6. Altium Designer20原理图绘制
  7. 《WEB渗透一.信息收集》
  8. C++之继承探究(六):虚函数和多态
  9. ubuntu下go插件delve下载安装
  10. Linux共享文件夹打不开,Linux 共享文件夹失败
  11. 2021年低压电工考试试卷及低压电工作业模拟考试
  12. 【unity3d】复刻死亡之书自动设置摄像机景深
  13. RNDR | 基于区块链的Web3.0渲染网络
  14. php 二维数组根据某个键值倒叙、升序排序
  15. 分析方法笔记--AARRR模型
  16. PyQt(Python+Qt)学习随笔:QTreeWidgetItem项列图标的访问方法
  17. 中国的阿甘——我很蠢,但我很幸运
  18. 苹果授权登录Sign In With Apple亲测通过版[100%成功]
  19. foxmail国外只能收邮件,不能发邮件
  20. 测试员≠“背锅侠”:学会这些,扔掉测试人常背的3口“锅”

热门文章

  1. vs2010不能正确加载 #39;VSTS for Database Professionals Sql Server Data-tier Application#39;包
  2. 如何解决电子墨水屏标签的误唤醒和吵醒问题?
  3. JSON 转换为LIST<T> 的简单实现
  4. 提高学习效率--从下载正确软件做起
  5. Android Studio二维码扫描
  6. 微信小游戏开发接入系列文章
  7. jssdk分享设置_php快速实现微信分享jssdk接口的配置
  8. 推荐系统召回四模型之:全能的FM模型
  9. 关于Vite项目打包后浏览器兼容性问题的解决方案
  10. gromacs PCA 做自由能景观图