日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Android編程之實(shí)現(xiàn)GPS定位

一、準(zhǔn)備工作
要想開發(fā)Android程序,我們需要如下三種軟件:
1. Eclipse
2. Android SDK
3. 開發(fā)Android程序的Eclipse 插件

成都創(chuàng)新互聯(lián)公司專注于綿陽企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站,成都商城網(wǎng)站開發(fā)。綿陽網(wǎng)站建設(shè)公司,為綿陽等地區(qū)提供建站服務(wù)。全流程按需定制網(wǎng)站,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)

為了開始我們的工作,首先要安裝Eclipse,然后從Google的網(wǎng)站獲得Android SDK,并且安裝Eclipse插件。

二、Activity類
每一種移動(dòng)開發(fā)環(huán)境都有自己的基類。如J2ME應(yīng)用程序的基類是midlets,BREW的基類是applets,而Android程序的基類是 Activity。這個(gè)activity為我們提供了對移動(dòng)操作系統(tǒng)的基本功能和事件的訪問。這個(gè)類包含了基本的構(gòu)造方法,鍵盤處理,掛起來恢復(fù)功能,以 及其他底層的手持設(shè)備的訪問。實(shí)質(zhì)上,我們的應(yīng)用程序?qū)⑹且粋€(gè)Activity類的擴(kuò)展。在本文中讀者將會(huì)通過例子學(xué)習(xí)到如何使用Activity類來編 寫Android程序。下面是一個(gè)簡單的繼承Activity的例子。

 
 
 
  1. public class LocateMe extends Activity{  
  2. public void onCreate(Bundle params){  
  3.       super.onCreate(params);  
  4.       setContentView(R.layout.main);  
  5.      }  
  6. public boolean onKeyDown(int keyCode, KeyEvent event){  
  7.         return true;  
  8.           }  
  9.   }  

三 View類
View類是Android的一個(gè)超類,這個(gè)類幾乎包含了所有的屏幕類型。但它們之間有一些不同。每一個(gè)view都有一個(gè)用于繪畫的畫布。這個(gè)畫布可以用 來進(jìn)行任意擴(kuò)展。本文為了方便起見,只涉及到了兩個(gè)主要的View類型:定義View和Android的XML內(nèi)容View。在上面的代碼中,使用的是 “Hello World” XML View,它是以非常自然的方式開始的。
如果我們查看一下新的Android工程,就會(huì)發(fā)現(xiàn)一個(gè)叫main.xml的文件。在這個(gè)文件中,通過一個(gè)簡單的XML文件,描述了一個(gè)屏幕的布局。這個(gè) 簡單的xml文件的內(nèi)容如下:

 
 
 
  1.  
  2. androidrientation="vertical" 
  3. android:layout_width="fill_parent" 
  4. android:layout_height="fill_parent" 
  5. android:layout_width="fill_parent" 
  6. android:layout_height="wrap_content" 
  7. android:layout_centerHoriz  
  8. android:text="ress the center key to locate yourself" 
  9. /> 
  10.  

上面的內(nèi)容的功能看起來非常明顯。這個(gè)特殊文件定義了一個(gè)相關(guān)的布局,這就意味著通過一個(gè)元素到另一個(gè)元素的關(guān)系或是它們父元素的關(guān)系來描述。對于視圖來 說,有一些用于布局的方法,但是在本文中只關(guān)注于上述的xml文件。
RealtiveLayout中包含了一個(gè)填充整個(gè)屏幕的文本框(也就是我們的LocateMe activity)。這個(gè)LocateMe activity在默認(rèn)情況下是全屏的,因此,文本框?qū)⒗^承這個(gè)屬性,并且文本框?qū)⒃谄聊坏淖笊辖秋@示。另外,必須為這個(gè)XML文件設(shè)置一個(gè)引用數(shù),以便 Android可以在源代碼中找到它。在默認(rèn)情況下,這些引用數(shù)被保存在R.java中,代碼如下:

 
 
 
  1. public final class R{  
  2. public static final class layout{  
  3. public static final int main=0x7f030001;  
  4.    }  
  5. }  

視圖也可以被嵌套,但和J2ME不同,我們可以將定制的視圖和Android團(tuán)隊(duì)發(fā)布的Widgets一起使用。在J2ME中,開發(fā)人員被迫選擇 GameCanvas和J2ME應(yīng)用程序畫布。這就意味著如果我們想要一個(gè)定制的效果,就必須在GameCanvas上重新設(shè)計(jì)我們所有的widget。 Android還不僅僅是這些,視圖類型也可以混合使用。Android還帶了一個(gè) widget庫,這個(gè)類庫包括了滾動(dòng)條,文本實(shí)體,進(jìn)度條以及其他很多控件。這些標(biāo)準(zhǔn)的widget可以被重載或被按著我們的習(xí)慣定制。現(xiàn)在讓我們來進(jìn)入 我們的例子。

#p#

四、Android實(shí)例

這個(gè)演示應(yīng)用程序?qū)⒀菔玖擞脩舻漠?dāng)前的經(jīng)度和緯度(在文本框中顯示)。onCreate構(gòu)造方法將和上面的例子基本相同,除了在其中加入了鍵盤處理,現(xiàn)在 讓我們看一下onKeyDown的代碼。

 
 
 
  1. public boolean onKeyDown(int keyCode, KeyEvent event){  
  2. if(keyCode != KeyEvent.KEYCODE_DPAD_CENTER || m_bLoading)  
  3. {  
  4. return true;  
  5. }  
  6. m_bLoading = true;  
  7. getLocation();  
  8. return true;  

下面讓我們來解釋一下這段代碼,首先,這段代碼檢查了當(dāng)前被按下的鍵,但還沒有開始處理。而是在getLocation方法中處理這一切的。然后,將裝載 flag標(biāo)志以及調(diào)用getLocation方法,下面是getLocation方法的代碼。

 
 
 
  1. private void getLocation(){  
  2. Location loc;  
  3. LocationManager locMan;  
  4. LocationProvider locPro;  
  5. List proList;  
  6. setContentView(R.layout.laoding);  
  7. locMan = (LocationManager) getSystemService(LOCATION_SERVICE);  
  8. proList = locMan.getProviders();  
  9. locPro = proList.get(0);  
  10. loc = locMan.getCurrentLocation(locPro.getName());  
  11. Lat = (float)loc.getLatitude();  
  12. Lon = (float)loc.getLongitude();  
  13. CreateView();  
  14. setContentView(customView);  

到這為止,程序開始變得更有趣了。但是不幸的是,Google關(guān)于之方面的文檔還是比較少了。在程序的變量聲明之后,我們需要演示一些裝載信息。 R.layout.loading符合了另一個(gè)簡單的XML布局視圖。通過簡單地調(diào)用setContentView方法可以使用轉(zhuǎn)載信息重繪屏幕。
讀者要注意的是:在編譯時(shí),Android會(huì)預(yù)先將所有的XML布局?jǐn)?shù)據(jù)包裝起來。如果我們想在編譯后變化布局屬性,按著規(guī)定,我們必須在源程序中做這些 事。
獲得LocationManager的唯一方法是通過getSystemService()方法的調(diào)用。通過使用LocationManager, 我們可以獲得一個(gè)位置提供者的列表。在一個(gè)真實(shí)的手持設(shè)備中,這個(gè)列表包含了一些GPS服務(wù)。實(shí)際上,我們希望選擇更強(qiáng)大,更精確,最后不帶有其他附加服 務(wù)的GPS?,F(xiàn)在,在模擬器中提供了一個(gè)用于測試的GPS,這個(gè)GPS來自San Francisco。定制的GPS文件可以可以被上傳,并進(jìn)行測試。如果我們要測試更復(fù)雜的應(yīng)用,來自San Francisco的GPS可能并不適合。
目前我們可以使用位置管理器和位置提供者進(jìn)行g(shù)etCurrentLocation的調(diào)用。這個(gè)方法返回本機(jī)的當(dāng)前位置的一個(gè)快照,這個(gè)快照將以 Location對象形式提供。在手持設(shè)備中,我們可以獲得當(dāng)前位置的經(jīng)度和緯度?,F(xiàn)在,使用這個(gè)虛擬的手持設(shè)備,我們可以獲得這個(gè)例子程序的最終結(jié)果: 建立了顯示一個(gè)定制的視圖。

五、使用定制視圖
在最簡單的窗體中,一個(gè)Android中的視圖僅僅需要重載一個(gè)onDraw方法。定制視圖可以是復(fù)雜的3D實(shí)現(xiàn)或是非常簡單的文本形式。下面的 CreateView方法列出了上面看到的內(nèi)容。

 
 
 
  1. public void CreateView(){  
  2. customView = new CustomView(this);  

這個(gè)方法簡單地調(diào)用了CustomView對象的構(gòu)造方法。CustomView類的定義如下:

 
 
 
  1. public class CustomView extends View{  
  2.      LocateMe overlord;  
  3. public CustomView(LocateMe pCtx){  
  4.      super(pCtx);  
  5.      overlord = pCtx;  
  6. }  
  7. public void onDraw(Canvas cvs){  
  8.    Paint p = new Paint();  
  9.    String sLat = "Latitude: " + overlord.getLat();  
  10.    String sLon = "Longitude: " + overlord.getLon();  
  11.    cvs.drawText(sLat , 32, 32, p);  
  12.    cvs.drawText(sLon, 32, 44, p);  
  13. }  

這個(gè)定制的Android視圖獲得了經(jīng)度和違度的測試數(shù)據(jù),并將這些數(shù)據(jù)顯示在屏幕上。這要求一個(gè)指向LocateMe的指針,Activity類是整 個(gè)應(yīng)用程序的核心。它的兩個(gè)方法是構(gòu)造方法和onDraw方法。這個(gè)構(gòu)造方法調(diào)用了超類的構(gòu)造方法以及引起了Activity指針的中斷。onDraw方 法將建立一個(gè)新的Paint對象(這個(gè)對象封裝了顏色、透明度以及其他的主題信息),這個(gè)對象將會(huì)訪問顏色主題。在本程序中,安裝了用于顯示的字符串,并 使用畫布指針將它們畫到屏幕上。這個(gè)和我們了解的J2ME游戲的畫布看起來非常類似。

六、Android展望
從純粹的開發(fā)觀點(diǎn)看,Android是一個(gè)非常強(qiáng)大的SDK。它使用基于XML的布局和定制視圖聯(lián)合了起來。并可以使用滾動(dòng)條、地圖以及其他的組件。所以 的這一切都可以被重載,或由開發(fā)人員來定制。但它所提供的文檔非常粗糙。在文檔中并沒有象SMS等技術(shù),但是從整體上來看Android SDK,還是非常有希望的。也非常符合Google承諾的“First Look”SDK。現(xiàn)在我們要做的就是等待Google發(fā)布第一個(gè)基于Android的手機(jī),并使用它。

【編輯推薦】

Android智能手機(jī)操作系統(tǒng)

Android編程之實(shí)現(xiàn)GPS定位

Android開發(fā)中插入新的Activity

 編程人員怎樣才能寫出美麗的代碼                                                                                                                                                                                                                     


網(wǎng)頁題目:Android編程之實(shí)現(xiàn)GPS定位
文章位置:http://www.5511xx.com/article/dppehgp.html