【正文】
輸出的 第二行就包含你的 MD5的摘要,由冒號分隔的一系列十六進制數(shù)字對作為一個 MD5。 你的調(diào)試證書的 MD5摘要,如果你的電腦是蘋果操作系統(tǒng)( Mac OS X)或Linux ,使用下面的命令: keytool list alias androiddebugkey –keystore ~/ .android/ storepass android keypass android 在其他開發(fā) 平臺上,您將需要更換你的平臺和用戶 的密鑰的位置: (1) 在 Windows XP操作系統(tǒng)中,使用命令 C: \文件和設置 \ 用戶 \android 根 目錄 \ 。這個簽名的過程中涉及使用的 密鑰和證書管理工具 和 JDK 中包含的用于 JAR 文件簽名和驗證的工具 公共的工具。 所有的安 卓應用程序都使用數(shù)字簽名生成證書。 最棘手的部分是 找到 MDS簽名用于簽名的證書的調(diào)試應用程序。 ( 4) API密鑰的注冊頁面上,粘貼在該 MD5簽名并提交表格。 ( 2)重讀這些服務條款,讓你確定你是否真的確定要同意他們的條款。在簡潔起見,讓我們更專注于狹窄的情況下獲得 NooYawk項目在模擬器上運行所需的密鑰。相反,你需要生成你自己的 API密鑰( S)使用在你的應用程序中。 然后我們 用 onResume()方法和 onPause()方法 啟用和關閉羅盤 : 關鍵所在 如果你已經(jīng)下載了本書的源代碼,并編譯 NooYawk項目,把上它安裝在你的模擬器中,并運行該項目,你可能會看到一個網(wǎng)格屏幕和一個圖釘,但沒有實 15 際的地圖。要做到這一點,我們首先需要創(chuàng)建一個對象添加實現(xiàn)覆蓋方法,并把它添加到列表中: me=new MyLocationOverlay(this, map)。有沒有暫停時更新位置或方向的活動方法,所以建議你用 onResume ()方法在啟用這些功能,并禁止他們時使用onPause ()方法 。 ( 2)顯示你在哪里標記,其中根據(jù)內(nèi)置可用的羅盤傳感器。 return(true),} 在這里,我們只是設置了一個簡短的片段從 OverlayItem上彈出式顯示,返回真值,表示我們處理的響應器。帶著這些事件,這取決你來做一些值得事情。與 onTop()方法類似 ,在安卓中你可以做很多類似的設置。 處理屏幕單擊事件 子類也可以覆蓋實現(xiàn) onTop()方法 ,當用戶點擊地圖時得到通知,所以可以調(diào)整對它的繪制覆蓋。 14 您可能還希望做一個更好的工作覆蓋 draw()方法來處理標記的陰影。 由 NooYawk構(gòu)造的標記是可繪制用于第 5步。 4. 覆蓋 createItem()方法返回索引的 OverlayItem對象。 2. 在構(gòu)造函數(shù)中,創(chuàng)建你項目中 OverlayItem類的對象,并調(diào)用 populate()方法,他們這是準備用于覆蓋的。為你覆蓋處理大部分繪制邏輯。 我們將在下一節(jié)細看該標記。如果你正在尋找添加圖釘或類似的子類進行覆蓋的話,有一個可用 ItemizedOverlay 子類,ItemizedOverlay簡化了這一過程。例如, NooYawk 項目中使用一個 圖 層顯示選擇的建筑物位于曼哈頓島。在地圖界的說法( 和,對于這個問題,在許多嚴謹?shù)膱D形編輯器都有),該圖釘與圖層分開的地圖本身比,你看到的是圖層上面的圖釘層組成的獨立層。 你可以讓用戶通過 選項 菜單或觸發(fā) 按下監(jiān)聽事件進行切換 ,在 項目 NooYawk中 , 設置 按鍵 按下事件方法 用 onKeyDown()方法。這在安卓手機地圖一樣可以實現(xiàn)。然而,這就意味著你必須記住由 le6乘以現(xiàn)實世界的經(jīng)度和緯度。捕獲的是, GeoPoint緯度和經(jīng)度為整數(shù),代表實際的緯度和經(jīng)度乘以 1e6。 將 GeoPoint 作為 setCenter()方法的參數(shù) 。 居中 通常情況下,你需要對地圖顯示進行控制,如超出縮放級別,用戶的當前位置或與你的活動中的一些數(shù)據(jù)保存的位置。 16水平將顯示幾個街區(qū)的城市在每一個層面,這可能是一個合理的起點實驗。每一個級別是一倍的有效分辨率: 1赤道測量 256個像素寬,而 21赤道測量 268435456像素寬。 你可以直接通過 setZoom()方法對 MapController 控制縮放的級別。 縮放 起初你會覺得世界地圖是相當寬廣。在 MapView 類MapController 之間,你有與之相持平的能力來決定地圖展示什么以及怎樣展示它。 練習控制 你可以通過 findViewById()方法找到你 MapView 中的部件,就像系統(tǒng)本身部件一樣。然而,當他們查看整個世界的地圖時,這不是十分的有用。您需要調(diào)用的是 RouteDisplayed()方法表明你是否找到某個導航方向。如果你是閑來無事做,就新建該項目,并把它在模擬器中運行起來,你就會得到一個漂亮的世界地圖。此外,在你的 文件中,您將需要添加幾個額外的東西: ( 1) 獲得網(wǎng)絡訪問權限 和 獲得 應用訪問范圍 (如 WIFI)性的定位 權限(后者與使用的 MyLocationOverlay類,在本章后面介紹) ( 2)在你 的 application 中,添加一個 useslibrary元素: android:name =,表明你正在使用一個可選的 Android應用程序接口。 例如,從地圖 / NooYawk的示例應用程序,這里是主要的布局: ?xml version= encoding=utf8f39。 然而,你需要有這兩個項目: ( 1) android: apiKey ,在創(chuàng)建中,將需要一個 Google地圖 API密鑰。這是必要的,因為MapView 類是不在 包中。 在你為 MapActivity子類設計布局時,你需要添加一個自定義的視圖,在寫這篇文章時用的是, 。 基本要素 最簡單的方式得到一張地圖,為您的應用程序創(chuàng)建自己的類 MapActivity 的子類。然而,牢記以下: (1) 你將需要創(chuàng)建一個合適的項目指標,以確保谷歌地圖的應用程序界面將是可用的。例如,在寫這篇文章的時候,人們所用的愛可視5的安卓系統(tǒng)并沒有谷歌地圖。這可能是設備一部分而不是設備的全部。相反,它是谷歌應用程序界面 的加載項,是普通 SDK 的延伸部分。 此外,為了其他顯示選項,根據(jù)其他地圖 數(shù)據(jù)的來源,請睜大你的眼睛去選擇。 如果你正在考慮使用谷歌地圖,請嚴密地審查這些條款來確定你的使用目的是否將無法運行、是否與其它各個條款相抵觸。 條款無情 把谷歌地圖納入你自己的應用程序上一般需要一個相當長的法律術語集。 幸運的是,把基本顯示功能納入你的 安卓 項目是相當容易的。但作為一個開發(fā)者,更多和你有關聯(lián)的是 MapView 類和 MapActivity類 ,這讓地圖融入你自己的應用程序中。 大多數(shù)的安卓設備,都整合了谷歌地圖,這并不奇怪。s because the API key in the source code is invalid for your development 9 machine. Instead, you will need to generate your own API key(s) for use with your application. Full instructions for generating API keys for development and production use can be found on the Android web site ( apis/). In the interest of brevity, let39。 ()。 ()。 ().add(me)。 8 return(true),} Here, we just toss up a short Toast with the snippet from the OverlayItem, returning true to indicate we handled the tap. My, Myself, and MyLocationOverlay Android has a builtin overlay to handle two mon scenarios: ? Showing where you are on the map, based on GPS or other locationproviding logic ? Showing where you are pointed, based on the builtin pass sensor, where available All you need to do is create a MyLocationOverlay instance, add it to your MapView39。 } } Handling Screen Taps An Overlay subclass can also implement onTap(), to be notified when the user taps the map, so the overlay can adjust what it draws. For example, in fullsize Google Maps, clicking a pushpin pops up a bubble with information about the business at that pin39。 return(true)。 boundCenterBottom(marker)。} Override protected OverlayItem createItem(int i) { return((i))。 (new OverlayItem(getPoint(,), The Downtown Club, Original home of the Heisman Trophy))。 (new OverlayItem(getPoint(,), Lincoln Center,