Android Google Map學習四(地圖元件的新增)
嚮應用中新增Google Map元件有兩種基本的方式,一種是利用MapFragment(Fragment的子類,內部整合GoogleMap);另一種是用MapView(View的子類,內部整合GoogleMap)。
一、MapFragment
嚮應用中新增MapFragment是最簡便的新增方式。
根據fragment的新增方式,一種是利用佈局檔案靜態新增,另外就是利用java程式碼動態新增。
1.靜態新增
在layout檔案中新增fragment佈局,並指明name屬性為com.google.android.gms.maps.MapFragment,這樣系統會自動將MapFragment附加上去:
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:name="com.google.android.gms.maps.MapFragment"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
2.動態新增
建立一個MapFragment物件,並利用FragmentTransaction動態新增到指定的容器中:
mMapFragment = MapFragment.newInstance();
FragmentTransaction fragmentTransaction =
getFragmentManager().beginTransaction();
fragmentTransaction.add(R.id.my_container, mMapFragment);
fragmentTransaction.commit();
添加了地圖元件後,需要初始化地圖,並設定監聽介面:mapFragment.getMapAsync(this);
public void getMapAsync (OnMapReadyCallback callback),其中的callback需要實現OnMapReady的介面,表明當地圖準備好使用時該進行的動作。
二、MapView
MapView是View的子類,只需要在佈局檔案中引用com.google.android.gms.maps.MapView定義一個MapView,然後在Activity初始化MapView,與普通的TextView等元件用法類似。
//layout檔案中的定義
<com.google.android.gms.maps.MapView
android:id="@+id/mymap"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
//Activity中的初始化
myMap = (MapView)findViewById(R.id.mymap);
myMap.getMapAsync(this);//getMapAsync這個與MapFragment相同
需要特別注意的是,MapView中生命週期的方法必須與Activity生命週期的方法同步,即必須在Activity中的生命週期中呼叫MapView的生命週期函式。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
```````//其他的一些初始化
myMap.onCreate(savedInstanceState);
}
@Override
protected void onResume() {
super.onResume();
myMap.onResume();
}
@Override
protected void onPause() {
super.onPause();
myMap.onPause();
}
@Override
protected void onDestroy() {
super.onDestroy();
myMap.onDestroy();
}
@Override
public void onLowMemory() {
super.onLowMemory();
myMap.onLowMemory();
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
myMap.onSaveInstanceState(outState);
}
三、元件的初始化
當需要初始化Map的一些狀態時,可以在xml屬性中設定,也可以在java程式碼中設定。
1.xml屬性初始化
在fragment或者MapView的xml佈局中,都可以新增一些屬性來初始化Map的狀態。
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:map="http://schemas.android.com/apk/res-auto"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
map:cameraBearing="112.5"
map:cameraTargetLat="-33.796923"
map:cameraTargetLng="150.922433"
map:cameraTilt="30"
map:cameraZoom="13"
map:mapType="normal"
map:uiCompass="false"
map:uiRotateGestures="true"
map:uiScrollGestures="false"
map:uiTiltGestures="true"
map:uiZoomControls="false"
map:uiZoomGestures="true"/>
2.程式程式碼初始化
GoogleMapOptions options = new GoogleMapOptions();
options.mapType(GoogleMap.MAP_TYPE_SATELLITE)
.compassEnabled(false)
.rotateGesturesEnabled(false)
.tiltGesturesEnabled(false);
//在例項化一個MapFragment物件時
MapFragment.newInstance(GoogleMapOptions options);
//或者MapView的建構函式中
MapView(Context, GoogleMapOptions)
相關推薦
Android Google Map學習四(地圖元件的新增)
嚮應用中新增Google Map元件有兩種基本的方式,一種是利用MapFragment(Fragment的子類,內部整合GoogleMap);另一種是用MapView(View的子類,內部整合GoogleMap)。 一、MapFragment 嚮
Tensorflow:實戰Google深度學習框架(高清版)PDF
Tensorflow:實戰Google深度學習框架(高清版)PDF百度網盤連結:https://pan.baidu.com/s/1GrKn451PECK0wupXcQDZ3g 提取碼:tw9k 複製這段內容後開啟百度網盤手機App,操作更方便哦哦內容簡介 · · · · · · TensorFlow是谷歌20
《TensorFlow:實戰Google深度學習框架(第2版)》高清中文版PDF下載
《TensorFlow:實戰Google深度學習框架(第2版)》高清中文版PDF下載 領域旗艦重磅升級 新老谷歌專家聯袂 首度全面支援1.4.x程式碼 大量增補新版獨有核心功能 下載地址:https://pan.baidu.com/s/1uijUhufBV6nXNgz-VxZUGQ備用地址:https:/
2018年Android面試題彙總四(持續更新中)
面試系列,推薦先讀我的心得:十二、ThreadLocal12.1、四大方法:set、get、remove和initialValue。 1、initialValue在第一次呼叫get或set時執行,只執行一次,初始化內部類Values中Oject陣列。 2、JDK5.0
《TensorFlow實戰Google深度學習框架(2017.3第一版)》學習筆記(一)
書本3.1.2計算圖的使用中的第41頁,例項中 v = tf.get_variable( 'v', initializer = tf.zeros_initializer(shape = [1])) 報錯 原因在於新版的tensorflow將語法改為 v
Android學習路線(二十一)運用Fragment構建動態UI——創建一個Fragment
動態 app idt 文檔 部分 roi 現實 調用 android學習 你能夠把fragment看成是activity的模塊化部分。它擁有自己的生命周期,接受它自己的輸入事件,你能夠在activity執行時加入或者刪除它(有點像是一個“子activity”。你
Google Map Api 谷歌地圖接口整理
服務器 依次 wheel gets 並且 ast utf 整理 實例化 一:基本知識: 1. 使用谷歌地圖 API 的第一步就是要註冊一個 API 密鑰,需要註重一下兩點: 1.假如使用 API 的頁面還沒有發布,只是在本地調試,可以不用密鑰,隨便用個字符串代替就
JS學習四(BOM DOM)
常用方法 p地址 eight 輸入 inter ash 一次 earch cti BOM Screen對象 console.log(window.width);//屏幕寬度 console.log(window.hei
JMS學習四(ActiveMQ消息過濾)
eat exp receiver 同步 默認 on() prop nal runt 消息的過期、消息的選擇器和消息的優先級。 一、消息的過期 允許消息過期 。默認情況下,消息永不會過期。如果消息在特定周期內失去意義,那麽可以設置過期時間。 有兩種方法設置消息的過期時間,時間
Android Camera fw學習(四)-recording流程分析
應用開發 facet internal server 中一 sca med erase 流程分析 Android Camera fw學習(四)-recording流程分析 備註:備註:本文是Android5.1學習筆記。博文按照軟件啟動流程分析。 且行且惜,一步一個腳印
JAVA學習筆記(併發程式設計 - 柒)- J.U.C元件2
J.U.C-FutureTask 在Java中一般通過繼承Thread類或者實現Runnable介面這兩種方式來建立執行緒,但是這兩種方式都有個缺陷,就是不能在執行完成後獲取執行的結果,因此Java 1.5之後提供了Callable和Future介面,通過它們就可以在任務執行完畢之後得到
JAVA學習筆記(併發程式設計 - 陸)- J.U.C之AQS及其相關元件詳解
文章目錄 J.U.C之AQS-介紹 關於AQS裡的state狀態: 關於自定義資源共享方式: 關於同步器設計: 如何使用: 具體實現的思路: 設計思想: 基於AQS的同步元件: AQS小結:
Lua菜鳥教程學習筆記四(重難點 續)
內容會持續更新,有錯誤的地方歡迎指正,謝謝! Lua 檔案 I/O Lua I/O 庫用於讀取和處理檔案。分為簡單模式(和C一樣)、完全模式(以一種面對物件的形式,將所有的檔案操作定義為檔案控制代碼的方法)。如果同時讀取多個檔案的話,使用完全模式則較為合適。 簡單模式 以
Pro Android學習筆記(一五五) 感測器(5) 磁場感測器和方位(上)
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
spring學習總結——裝配Bean學習四(匯入和混合配置)
情景:在典型的Spring應用中,我們可能會同時使用自動化和顯式配置(JavaConfig)或者XML配置,幸好在Spring中,這些配置方案都不是互斥的。你儘可以將JavaConfig的元件掃描和自動裝配和/或XML配置混合在一起。 關於混合配置,第一件需要了解的事情就是在自動裝配時,它並不在意要裝配
spring學習總結——高階裝配學習四(執行時:值注入)
前言: 當討論依賴注入的時候,我們通常所討論的是將一個bean引用注入到另一個bean的屬性或構造器引數中。bean裝配的另外一個方面指的是將一個值注入到bean的屬性或者構造器引數中。在沒有學習使用怎麼注入外部值時,我們正常是直接將值寫死在程式碼中。如將專輯的名字裝配到BlankDis
android google map v2新的定位方法
package com.diecolor; import android.content.Context; import android.location.Location; import android.location.LocationListener; import a
機器學習筆記(二十二):TensorFlow實戰十四(影象風格遷移)
1 - 引言 相信大家都使用過一種濾鏡,可以把一張照片轉換成不同風格的照片,如下圖所示: 那麼我們就來利用TensorFlow來實現以下這個演算法,這個演算法出自Gatys的A Neural Algorithm of Artistic Style論文,十分有趣,讓我們來詳細的介紹一下這
【強化學習】python 實現 q-learning 例四(例二改寫)
陷阱 data img 入口 turn pda state save isod 將例二改寫成面向對象模式,並加了環境! 不過更新環境的過程中,用到了清屏命令,play()的時候,會有點問題。learn()的時候可以勉強看到:P 0.效果圖 1.完整代碼 相對於例一,
Android學習筆記(第一行程式碼) 做一個簡單的登入介面
一.建立xml檔案 1.賬戶輸入框和密碼輸入框的編寫 <TextView android:layout_height="wrap_content" android:text="@string/LG_name" />