999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Android手機(jī)地圖的實(shí)現(xiàn)

2015-05-30 10:05:47王存宇朱琪彭敏佳金鳳飛
計(jì)算機(jī)時(shí)代 2015年4期
關(guān)鍵詞:設(shè)置用戶方法

王存宇 朱琪 彭敏佳 金鳳飛

摘 要: Android是由Google開發(fā)的一種開源的智能手機(jī)操作系統(tǒng),它基于Linux平臺(tái),由操作系統(tǒng)、應(yīng)用軟件、中間件和用戶界面組成,是真正開放和首個(gè)完全為移動(dòng)終端打造的軟件。文章介紹了Android平臺(tái)手機(jī)地圖開發(fā)的背景及現(xiàn)狀;講解了控件、布局方式、Android應(yīng)用程序狀態(tài)生命周期、Google Maps API等使用方法;詳細(xì)設(shè)計(jì)并實(shí)現(xiàn)了Android平臺(tái)上手機(jī)地圖界面和簡單功能。

關(guān)鍵詞: Android; 地圖系統(tǒng); maps API; 布局

中圖分類號(hào):TP399 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1006-8228(2015)04-32-03

Abstract: Android developed by Google is a open source smart phone operating system based on Linux. Android consists of operating system, application, middleware and user interface. This paper describes the background of the Android platform mobile maps development, and explains the usage of controls, layout, Android application lifecycle state, Google Maps API, and so on.Finally, the design and realization of the mobile map interface and the simple function for Android platform are described in detail.

Key words: Android; map system; maps API; layout

0 引言

隨著3G、4G 時(shí)代的到來,手機(jī)已經(jīng)成為人們一種快捷而重要的獲取信息手段。地圖與信息的結(jié)合,擴(kuò)展了手機(jī)地圖服務(wù)的功能,極大地提高了人們獲取信息的直觀性, 為人們出行、旅游及位置相關(guān)信息的獲取帶來了方便[1]。

手機(jī)地圖服務(wù)屬于高新技術(shù)產(chǎn)業(yè),它的產(chǎn)生對(duì)很多行業(yè)都有促進(jìn)作用。手機(jī)地圖服務(wù)可以幫助一些相關(guān)行業(yè)提高其工作效率。其中最典型的就是安全搶險(xiǎn)救援,手機(jī)電子地圖提供的定位服務(wù)和最快路線到達(dá)服務(wù)將給救援工作的效率及質(zhì)量帶來極大提升。

本文首先介紹了Android的相關(guān)控件的特性,然后對(duì)于特定的GoogleMap API作了介紹,最后簡單實(shí)現(xiàn)該手機(jī)地圖功能。

1 Android的視圖組件

Android應(yīng)用開發(fā)的主要內(nèi)容之一是界面。隨著移動(dòng)設(shè)備的不斷普及,Android應(yīng)用幾乎無處不在。對(duì)于用戶來說,除了看重一個(gè)應(yīng)用的功能外,圖形界面也是最關(guān)注的對(duì)象。如果一個(gè)應(yīng)用沒有提供友好的圖形界面,那么將很難吸引最終的用戶[2]。

1.1 Button組件

1.2 EditText組件

EditText是一個(gè)非常重要的組件,可以說它是用戶和Android應(yīng)用進(jìn)行數(shù)據(jù)傳輸?shù)拇皯簦辛怂偷扔谟辛艘簧群虯ndroid應(yīng)用傳輸?shù)拈T,通過它用戶可以把數(shù)據(jù)傳給Android應(yīng)用,然后得到我們想要的數(shù)據(jù)[3]。

EditText控件主要設(shè)置一些主要的屬性,可以設(shè)置如下:

android:textColorHint屬性設(shè)置顏色;

android:hint屬性設(shè)置當(dāng)EditText內(nèi)容為空時(shí)顯示的文本;

android:enabled="false"實(shí)現(xiàn)EditText不可編輯;

android:password="true"實(shí)現(xiàn)密碼輸入功能;

android:phoneNumber="true"把該控件變成只接受電話號(hào)碼輸入的文本框;

android:numeric控制輸入數(shù)字類型;

android:inputType設(shè)置文本的類型,讓輸入法選擇合適的軟鍵盤。

1.3 ImageView組件

ImageView也就是圖像視圖,用于在屏幕中顯示任何的Drawable對(duì)象,通常用來顯示圖片。其有如下屬性。

android:adjustViewBounds:用于設(shè)置ImageView是否調(diào)整自己的邊界來保持所顯示圖片的長寬比。

android:maxHeight:設(shè)置ImageView的最大高度,需要設(shè)置adjustViewBounds屬性值為true,否則不起作用。

android:maxWidth:設(shè)置ImageView的最大寬度,需要設(shè)置android:adjustViewBounds屬性值為true,否則不起作用。

android:scaleType:這個(gè)屬性是比較重要的屬性,用于設(shè)置所顯示的圖片如何縮放或移動(dòng)以適應(yīng)ImageView的大小,其屬性值可以是matrix(使用matrix方式進(jìn)行縮放)、fitXY(對(duì)圖片橫向、縱向獨(dú)立縮放,使得該圖片完全適應(yīng)于該ImageView,圖片的縱橫比可能會(huì)改變)、fitStart(保持縱橫比縮放圖片,直到該圖片能完全顯示在ImageView中,縮放完成后該圖片放在ImageView的左上角)、fitCenter(保持縱橫比縮放圖片,直到該圖片能完全顯示在ImageView中,縮放完成后該圖片放在ImageView的中央)、fitEnd(保持縱橫比縮放圖片,直到該圖片能完全顯示在ImageView中,縮放完成后該圖片放在ImageView的右下角)、center(把圖像放在ImageView的中間,但不進(jìn)行任何縮放)、centerCrop(保持縱橫比縮放圖片,以使得圖片能完全覆蓋ImageView)或centerInside(保持縱橫比縮放圖片,以使得ImageView能完全顯示該圖片)。

1.4 Menu組件

菜單是用戶界面中最常見的元素之一,使用非常頻繁,在Android中,菜單被分為三種:選項(xiàng)菜單(OptionsMenu)、上下文菜單(ContextMenu)和子菜單(SubMenu)。

⑴ OptionMenu

默認(rèn)樣式是在屏幕底部彈出一個(gè)菜單,這個(gè)菜單我們就稱為選項(xiàng)菜單OptionsMenu,一般情況下,選項(xiàng)菜單最多顯示2排,每排3個(gè)菜單項(xiàng),這些菜單項(xiàng)有文字有圖標(biāo),也被稱作Icon Menus,如果多于6項(xiàng),從第6項(xiàng)開始會(huì)被隱藏,在第6項(xiàng)會(huì)出現(xiàn)一個(gè)More里,點(diǎn)擊More才出現(xiàn)第6項(xiàng)以及以后的菜單項(xiàng),這些菜單項(xiàng)也被稱作Expanded Menus。

其一些API如下:

onCreateOptionsMenu(Menu menu)方法,并在此方法中添加菜單項(xiàng),最后返回true,如果false,菜單則不會(huì)顯示。

onOptionsItemSelected(MenuItem im)方法為菜單項(xiàng)注冊(cè)事件。

onOptionsMenuClosed(Menu menu):菜單關(guān)閉后發(fā)生的動(dòng)作。

onPrepareOptionsMenu(Menu menu):選項(xiàng)菜單顯示之前onPrepareOptionsMenu方法會(huì)被調(diào)用,用戶可以用此方法來根據(jù)打當(dāng)時(shí)的情況調(diào)整菜單。

onMenuOpened(int Id, Menu menu):單打開后發(fā)生的動(dòng)作。

⑵ ContextMenu

android的context menu上下文菜單,選擇某項(xiàng)VIEW后,長按menu鍵就會(huì)顯示。ContextMenu的使用和OptionsMenu相似,先添加XML文件,然后重載對(duì)應(yīng)的方法成員。重載的方法有onCreateContextMenu方法。接下來是處理菜單的點(diǎn)擊事件onContextItemSelected(MenuItem item)。

ContextMenu和OptionsMenu主菜單不同的是上下文菜單需要使用registerForContextMenu進(jìn)行注冊(cè),否則將無法顯示。

⑶ SubMenu

一個(gè)Menu對(duì)象可以擁有0或多個(gè)SubMenu,通過調(diào)用Menu.addSubMenu方法將SubMenu添加到當(dāng)前Menu中。在SubMenu 添加MenuItem的方式和在Menu中添加MenuItem方式一樣,因?yàn)镾ubMenu是Menu的子類,但是SubMenu里不能再添加 SubMenu。

Android提供了基于Group id管理多個(gè)MenuItem的方法。

removeGroup(int group):移除所有屬于group的MenuItem。

SetGroupEnable(int gp ,boolean b):批量開啟或關(guān)閉整個(gè)組的MenuItem。

setGroupVisible(int g,boolean b):批量顯示或隱藏整個(gè)組的MenuItem。

setGroupCheckable(int group, boolean checkable,boolean exclusive):設(shè)置菜單是否可選中。

2 Google Map API

2.1 Map API KEY申請(qǐng)

如果你使用的是eclipse編寫android程序,那么就打開eclipse->Windows→Preference→Android→Build,其中Default debug keystore的值便是debug.keystore的路徑。

執(zhí)行命令:keytool -list -keystore debug.keystore,這時(shí)可能會(huì)提示你輸入密碼,這里輸入默認(rèn)的密碼“android”,即可取得MD5值。

打開網(wǎng)頁:https://developers.google.com/maps/documentation/

android/start#installing_the_google_maps_android_v2_api,點(diǎn)擊Creating an API Project,然后點(diǎn)擊 Google APIs Console,然后點(diǎn)擊左側(cè)欄的Servises,在右側(cè)出來的列表中往下翻,知道你找到Google Maps API v2,然后點(diǎn)擊那個(gè)開關(guān),使其狀態(tài)為開。

點(diǎn)擊左側(cè)欄的API Access,在右側(cè)出來的頁面中點(diǎn)擊Create new Android key,此時(shí)會(huì)彈出來一個(gè)頁面,在輸入框中輸入你之前得到的認(rèn)證書,然后點(diǎn)擊create后便生成對(duì)應(yīng)的api key,復(fù)制key,然后在你的安卓工程的AndroidManifest.xml中添加key。

2.2 MAP API詳解

Google MaP API為LBS開發(fā)者提供了基礎(chǔ)的地圖服務(wù)。

⑴ MapView:為顯示地理數(shù)據(jù)提供了一個(gè)使用的用戶界面選項(xiàng)。提供物理位置或者地址的上下文的最直觀的方式就是在地圖上顯示它。使用MapView,就可以創(chuàng)建出提供了交互式的圖的活動(dòng)。要使用MapView,需要在布局文件中包含MapView控件,并在MapView控件中添加申請(qǐng)到的google map key。

public void setSatellite(boolean on),當(dāng)參數(shù)為true時(shí)設(shè)置為衛(wèi)星地圖,false時(shí)不設(shè)置為衛(wèi)星地圖顯示;

public void setTraffic(boolean on),當(dāng)參數(shù)為 true 時(shí)設(shè)置為交通地圖,false 時(shí)不設(shè)置為交通地圖顯示;

public void setStreetView(boolean on),當(dāng)參數(shù)為 true 時(shí)設(shè)置為街景地圖,false時(shí)不設(shè)置為街景地圖地圖顯示。

public boolean isSatellite(),判斷是否是衛(wèi)星地圖;

public boolean isTrafficQ,判斷是否是交通地圖;

public boolean isStreetView(),判斷是否是街景地圖。

public GeoPoint getMapCenter(),通過這個(gè)函數(shù)來獲取Map地圖的中心。

public int getLongitudeSpan(),得到經(jīng)度;

public int getLatitudeSpan(),得到諱度。

⑵ MapActivity:用來創(chuàng)建新的地圖活動(dòng)的可擴(kuò)展的基類,它可以包含一個(gè)MapView。MapActivity可以處理應(yīng)用程序的生命周期以及顯示地圖所要求的后臺(tái)服務(wù)管理。因此,只能在MapActivity的派生類中使用MapView。

protected abstract boolean isRouteDisplayed(),是否正在顯示路線地圖;

protected boolean isLocationDisplayed(),是否在顯示位置信息。

overlay:覆蓋是用來向MapView中添加注釋的單擊處理的方法。每一個(gè)覆蓋都可以直接在畫布上繪制ZD原語,包括文本、直線、圖片和各種形狀,之后它們會(huì)被用來覆蓋到MapView之上。開發(fā)者可以向一個(gè)地圖中添加多個(gè)覆蓋。分派給一個(gè)MapView的所有覆蓋都是作為層而添加的,較新的層可能會(huì)模糊較舊的層。用戶單擊是通過棧進(jìn)行傳遞的,直到它們被覆蓋處理,或者作為MapView本身的單擊進(jìn)行注冊(cè)為止。

MyLocationoveriay:一個(gè)特殊的覆蓋,它可以用來顯示當(dāng)前的位置和設(shè)備的方向。

ItemiZedoverlayS和OVerlayltems:兩者結(jié)合在一起使用可以創(chuàng)建一個(gè)地圖標(biāo)記層,并使用帶文本的圖片對(duì)其進(jìn)行顯示。

3 系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

地圖軟件的主要功能[4]如下:

⑴ 地圖模塊,可以對(duì)地圖進(jìn)行放大、縮小和移動(dòng)查看地理位置;

⑵ 經(jīng)韓度定位模塊,可以讓用戶在手機(jī)屏幕界面輸入經(jīng)度和諱度數(shù)值來查看目標(biāo)地理位置,目標(biāo)地理位置顯示在手機(jī)地圖屏幕的中心,并且可以對(duì)地圖進(jìn)行放大、縮小和移動(dòng)查看;(DGPS軌跡記錄模塊,記錄用戶的行程軌跡,并計(jì)算出行程距離,并且可以對(duì)地圖進(jìn)行放大、縮小和移動(dòng)查看;

⑶ 行程路線選擇模塊,用戶可以輸入出發(fā)點(diǎn)和目的地名稱去查詢兩地之間行程路線選擇,可以選擇步行出行、乘公交出行、自駕出行方式下路線的選擇,并且可以對(duì)地圖進(jìn)行放大、縮小和移動(dòng)查看;

⑷ GPS自身定位模塊,用戶可以通過打開手機(jī)的GPS來定位自己目前所處的位置在哪,并顯示在手機(jī)地圖的中心。

Main.xml采用RelativeLayout相對(duì)布局里面嵌套LinearLayout線性布局的方式,實(shí)現(xiàn)代碼略。該系統(tǒng)的主頁界面如圖1所示。

4 結(jié)論

目前,Android手機(jī)操作系統(tǒng)己經(jīng)成為市場占有率第一的智能手機(jī)系統(tǒng)。本手機(jī)地圖服務(wù)實(shí)現(xiàn)了地圖服務(wù)的所有基本功能。本文將GPS位置定位技術(shù)和Google Maps提供的相關(guān)接口運(yùn)用于手機(jī)地圖各個(gè)功能模塊的設(shè)計(jì)與實(shí)現(xiàn)。該地圖系統(tǒng)尚缺少向?qū)У戎悄芄δ埽@有待進(jìn)一步研究和實(shí)踐。

參考文獻(xiàn):

[1] RetoMeier.Android高級(jí)編程[M].清華大學(xué)出版社,2006.

[2] 陳釗.Android程序主要組成部分概述[J].中國新技術(shù)新產(chǎn)品,2011.17:42-43

[3] 陳星,江蘭帆.基于GoogleAndroid平臺(tái)的移動(dòng)開發(fā)研究[J].福建電腦,2008.11:156-157

[4] 孫曉宇.Android手機(jī)界面管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京郵電大學(xué)碩士學(xué)位論文,2009.

猜你喜歡
設(shè)置用戶方法
中隊(duì)崗位該如何設(shè)置
關(guān)注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
可能是方法不對(duì)
關(guān)注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關(guān)注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
用對(duì)方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
本刊欄目設(shè)置說明
中俄臨床醫(yī)學(xué)專業(yè)課程設(shè)置的比較與思考
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
捕魚
主站蜘蛛池模板: 亚洲视频二| 天天做天天爱夜夜爽毛片毛片| 亚洲综合第一页| 成人年鲁鲁在线观看视频| 色哟哟精品无码网站在线播放视频| 国产成人精品一区二区不卡| 国产男女免费完整版视频| 最新国产成人剧情在线播放| 亚洲黄网视频| 国产精品嫩草影院av| 77777亚洲午夜久久多人| 精品伊人久久久大香线蕉欧美| 四虎永久免费在线| 91国语视频| 九九热免费在线视频| 美女被操黄色视频网站| 手机在线看片不卡中文字幕| 色视频国产| 国产精品网址在线观看你懂的| 中文字幕永久在线观看| 她的性爱视频| 日本人妻丰满熟妇区| 91精品国产福利| 片在线无码观看| 亚洲欧洲日产无码AV| 亚洲欧美日韩中文字幕一区二区三区| 欧洲高清无码在线| 91丨九色丨首页在线播放| 色噜噜狠狠狠综合曰曰曰| 99re这里只有国产中文精品国产精品 | 欧美午夜视频在线| 国产无人区一区二区三区| 亚洲成人黄色在线观看| 国产福利拍拍拍| 国产国产人在线成免费视频狼人色| 精品一区二区无码av| 国产高清在线观看91精品| 成人年鲁鲁在线观看视频| 在线观看网站国产| 全部无卡免费的毛片在线看| 亚洲免费福利视频| 亚洲天堂视频网| 亚洲成人在线免费观看| 欧美三级视频网站| 国产精品手机视频| 欧美精品亚洲精品日韩专区| 国产青青草视频| 中文字幕不卡免费高清视频| 国产裸舞福利在线视频合集| 97se亚洲综合在线韩国专区福利| 欧美中文字幕在线二区| 免费A级毛片无码免费视频| 亚洲,国产,日韩,综合一区| 午夜性刺激在线观看免费| 天天综合网色中文字幕| 欧美在线黄| 精品国产香蕉伊思人在线| 久久精品免费国产大片| 成人午夜福利视频| 国产h视频免费观看| 欧美激情成人网| 在线精品视频成人网| 激情视频综合网| 中文天堂在线视频| 亚洲无码高清免费视频亚洲| 国产在线观看人成激情视频| 日韩在线播放欧美字幕| 毛片免费试看| 亚洲男人的天堂在线观看| 91麻豆精品国产高清在线| 国产真实乱子伦视频播放| 成色7777精品在线| 国产女人水多毛片18| 国产一级无码不卡视频| 国产精品手机在线观看你懂的| 91久久偷偷做嫩草影院电| 嫩草国产在线| 首页亚洲国产丝袜长腿综合| 成人毛片免费观看| 亚洲成人手机在线| 亚洲经典在线中文字幕| 成年网址网站在线观看|