Android开发之 Fragment里嵌入高德地图

最近在做的项目里要用到地图,看了一下高德地图的API,最后决定就用高德地图,和平时不同,这次地图是要嵌在Fragment了,研究了一下网上的代码,最后实现了。下面说一下实现2D地图的方法。

1.先去高德地图官网注册Key,地址是http://lbs.amap.com/api/android-sdk/summary/;

2.根据说明下载所需的sdk.

 

开发之 Fragment里嵌入高德地图-android 嵌入fragment">

 

3.配置工程

(1)添加key

在工程的“ AndroidManifest.xml ”文件如下代码中添加Key.

 

 

(1)添加权限

<pre><code><uses-permission android:name="android.permission.INTERNET" />

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

<uses-permission android:name="android.permission.READ_PHONE_STATE" />

<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />

<uses-permission android:name="android.permission.WRITE_SETTINGS" /></code></pre>

4.布局文件

<com.amap.api.maps2d.MapView

android:id="@+id/map"

android:layout_width="match_parent"

android:layout_height="match_parent" />

 

5.实现

 public class FragmentMap extends Fragment{
     private static FragmentMap fragment = null;
     @ViewInject(R.id.map)
     private MapView mapView;
     private AMap aMap;
     private View mapLayout;
 
     public static Fragment newInstance() {
           if (fragment == null) {
              synchronized (FragmentMap.class) {
                if (fragment == null) {
                     fragment = new FragmentMap();
 
                    }
              }
         }
         return fragment;
     }
 
     public View onCreateView(LayoutInflater inflater, ViewGroup container,
           Bundle savedInstanceState) {
          if (mapLayout == null) {
 
         mapLayout = inflater.inflate(R.layout.fragment_map, null);
         ViewUtils.inject(this, mapLayout);
         mapView.onCreate(savedInstanceState);//必须写
 
         if (aMap == null) {
             aMap = mapView.getMap();
 
            } else {
                 if (mapLayout.getParent() != null) {
                       ((ViewGroup) mapLayout.getParent()).removeView(mapLayout);
                   }
            }
 
           return mapLayout;
        }
       @Override
       public void onResume() {
          super.onResume();
          mapView.onResume();
 
       }
 
    /**
    * 方法必须重写
    * map的生命周期方法
    */
    @Override
    public void onPause() {
        super.onPause();
        mapView.onPause();
 
    }
 
  /**
   * 方法必须重写
   * map的生命周期方法
  */
  @Override
  public void onSaveInstanceState(Bundle outState) {
       super.onSaveInstanceState(outState);
       mapView.onSaveInstanceState(outState);
  }
 
  /**
   * 方法必须重写
   * map的生命周期方法
  */
   @Override
   public void onDestroy() {
       super.onDestroy();
       mapView.onDestroy();
    }
  }

效果图如下:

 

 

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索文件
, view
, class
, static
, 代码
null
android 嵌入fragment、android 嵌入高德地图、android开发fragment、android 高德地图开发、android嵌入式开发,以便于您获取更多的相关知识。

时间: 2024-09-17 03:51:40

Android开发之 Fragment里嵌入高德地图的相关文章

Android Fragment里嵌入高德地图定位

在上一篇已经写了嵌入高德地图,这里来说一下怎么实现定位,并显示定位的图标. public class FragmentMap extends Fragment implements LocationSource, AMapLocationListener{        private static FragmentMap fragment = null;        @ViewInject(R.id.map)        private MapView mapView;        pr

Android开发之Fragment传递参数的几种方法

Fragment在Android3.0开始提供,并且在兼容包中也提供了Fragment特性的支持.Fragment的推出让我们编写和管理用户界面更快捷更方便了. 但当我们实例化自定义Fragment时,为什么官方推荐Fragment.setArguments(Bundle bundle)这种方式来传递参数,而不推荐通过构造方法直接来传递参数呢?为了弄清这个问题,我们可以做一个测试,分别测试下这两种方式的不同 首先,我们来测试下通过构造方法传递参数的情况 public class FramentT

Android 开发之BottomBar+ViewPager+Fragment实现炫酷的底部导航效果_Android

BottomBar BottomBar是Github上的一个开源框架,因为从1.3.3开始不支持fragments了,要自己配置,弄了很久,不管是app的fragment还是V4 的程序总是总是闪退.于是就用这种方式实现了,效果还不错.github有详细说明,多余的就不说了. 这个roughike是这个项目的所有者(大神致敬). 我用的是Android studio开发,fragment全部导的V4的包(以为最开始就支持的是v4的,后面也支持了app.fragment). 首先是dependen

Android程序开发之Fragment实现底部导航栏实例代码_Android

流行的应用的导航一般分为两种,一种是底部导航,一种是侧边栏. 说明 IDE:AS,Android studio; 模拟器:genymotion; 实现的效果,见下图. 具体实现 为了讲明白这个实现过程,我们贴出来的代码多一写,这样更方便理解 [最后还会放出完整的代码实现] .看上图的界面做的比较粗糙,但实现过程的骨架都具有了,想要更完美的设计,之后自行完善吧 ^0^. 布局 通过观察上述效果图,发现任意一个选项页面都有三部分组成: 顶部去除ActionBar后的标题栏: 中间一个Fragment

Android 开发之BottomBar+ViewPager+Fragment实现炫酷的底部导航效果

BottomBar BottomBar是Github上的一个开源框架,因为从1.3.3开始不支持fragments了,要自己配置,弄了很久,不管是app的fragment还是V4 的程序总是总是闪退.于是就用这种方式实现了,效果还不错.github有详细说明,多余的就不说了. 这个roughike是这个项目的所有者(大神致敬). 我用的是Android studio开发,fragment全部导的V4的包(以为最开始就支持的是v4的,后面也支持了app.fragment). 首先是dependen

Android程序开发之UIScrollerView里有两个tableView

一,效果图. 二,工程图. 三,代码. RootViewController.h #import <UIKit/UIKit.h> @interface RootViewController : UIViewController <UIScrollViewDelegate,UITableViewDelegate,UITableViewDataSource> { UIScrollView *_scrolView; UITableView *_tableView; UITableView

Android程序开发之Fragment实现底部导航栏实例代码

流行的应用的导航一般分为两种,一种是底部导航,一种是侧边栏. 说明 IDE:AS,Android studio; 模拟器:genymotion; 实现的效果,见下图. 具体实现 为了讲明白这个实现过程,我们贴出来的代码多一写,这样更方便理解 [最后还会放出完整的代码实现] .看上图的界面做的比较粗糙,但实现过程的骨架都具有了,想要更完美的设计,之后自行完善吧 ^0^. 布局 通过观察上述效果图,发现任意一个选项页面都有三部分组成: 顶部去除ActionBar后的标题栏: 中间一个Fragment

Android开发之旅:应用程序基础及组件

--成功属于耐得住寂寞的人,接下来几篇将讲述Android应用程序的原理及术语,可能会比较枯燥.如果能够静下心来看,相信成功将属于你. 引言 为了后面的例子做准备,本篇及接下来几篇将介绍Android应用程序的原理及术语,这些也是作为一个Android的开发人员必须要了解,且深刻理解的东西.本篇的主题如下: 1.应用程序基础 2.应用程序组件 2.1.活动(Activities) 2.2.服务(Services) 2.3.广播接收者(Broadcast receivers) 2.4.内容提供者(

Android开发之旅:android架构

引言 通过前面两篇: Android 开发之旅:环境搭建及HelloWorld Android 开发之旅:HelloWorld项目的目录结构 我 们对android有了个大致的了解,知道如何搭建android的环境及简单地写一个HelloWorld程序,而且知道一个android项目包括哪 些文件夹和文件及相应的作用.本篇将站在顶级的高度--架构,来看android.我开篇就说了,这个系列适合0基础的人且我也是从0开始按照这个步骤来 学的,谈架构是不是有点螳臂挡车,自不量力呢?我觉得其实不然,如