壹.準備工作
需要以下三種軟件:
1.黯然失色
2.Android SDK
3.為Android程序開發Eclipse插件。
為了開始我們的工作,我們應該首先安裝Eclipse,然後從Google網站獲取Android SDK並安裝Eclipse插件。
二、活動課
每個移動開發環境都有自己的基類。例如,J2ME應用程序的基類是midlets,BREW的基類是applets,Android程序的基類是Activity。此活動為我們提供了訪問移動操作系統的基本功能和事件的機會。該類包含基本的構造方法、鍵盤處理、掛斷和恢復功能以及對其他底層手持設備的訪問。本質上,我們的應用程序將是壹個Activity類的擴展。在本文中,讀者將通過示例學習如何使用活動類編寫Android程序。下面是繼承活動的壹個簡單示例。
公共的?班級?LocateMe?延伸?活動{
公共的?虛空?onCreate(Bundle?params ){
super . oncreate(params);
setContentView(r . layout . main);?
}
公共的?布爾型?onKeyDown(int?鍵碼?關鍵事件?事件){
回歸?真實;
}
}三個視圖類
視圖類是Android的超類,幾乎包含所有屏幕類型。但是它們之間有壹些不同。每壹個視角都有壹塊畫布用來繪畫。該畫布可用於任意擴展。為了方便起見,本文只涉及兩種主要類型的視圖:定義視圖的XML內容視圖和Android。在上面的代碼中,使用了“Hello World”XML視圖,它以壹種非常自然的方式開始。
如果我們查看新的Android項目,我們會發現壹個名為main.xml的文件。在該文件中,屏幕的布局通過壹個簡單的xml文件進行描述。這個簡單的xml文件的內容如下:
& lt?xml?version =“1.0“?encoding =“utf-8“?& gt?
& ltRelativeLayout?xmlns:Android =“/apk/RES/Android“?
Android orientation =“vertical”?
Android:layout _ width =“fill _ parent“?
Android:layout _ height =“fill _ parent“?
& gt?
& ltTextView?
Android:layout _ width =“fill _ parent“?
Android:layout _ height =“wrap _ content“?
android:布局_centerHoriz
Android:text =“RESS?那個?中心?鑰匙?去哪?定位?妳自己“?
/& gt;?
& lt/relative layout & gt;以上內容的作用似乎非常明顯。這個特殊的文件定義了相關的布局,這意味著它是由壹個元素與另壹個元素或它們的父元素之間的關系來描述的。對於視圖,有壹些布局方法,但是在本文中,我們只關註上面的xml文件。
RealtiveLayout包含壹個填充整個屏幕的文本框(即我們的LocateMe活動)。默認情況下,LocateMe活動是全屏的,因此文本框將繼承該屬性,並且文本框將顯示在屏幕的左上角。此外,您必須為這個XML文件設置壹個引用號,以便Android可以在源代碼中找到它。默認情況下,這些引用保存在R.java中,代碼如下:
公共的?決賽?班級?R{
公共的?靜電?決賽?班級?布局{
公共的?靜電?決賽?int?main = 0x7f 030001;?
}
視圖也可以嵌套,但與J2ME不同的是,我們可以使用Android團隊發布的窗口小部件來定制視圖。在J2ME,開發者被迫選擇遊戲畫布和J2ME應用畫布。這意味著如果我們想要壹個定制的效果,我們必須重新設計GameCanvas上的所有小部件。Android不僅是這些,而且視圖類型可以混合。Android還附帶了壹個小部件庫,其中包括滾動條、文本實體、進度條和許多其他控件。這些標準小部件可以根據我們的習慣進行重載或定制。現在讓我們進入我們的例子。?
第四,Android示例
這個演示應用程序將演示用戶當前的經度和緯度(顯示在文本框中)。onCreate的構造方法將與上面的示例基本相同,只是增加了鍵盤處理。現在我們來看看onKeyDown的代碼。
公共的?布爾型?onKeyDown(int?鍵碼?關鍵事件?事件){
if(鍵碼?!=?關鍵事件。DPAD中心?||?m _ bLoading)
{
回歸?真實;
}
m _ bLoading?=?真實;
get location();
回歸?真實;
讓我們解釋壹下這段代碼。首先,這段代碼檢查當前按下的鍵,但它還沒有開始處理。相反,它在getLocation方法中處理。然後,將加載flag標誌並調用getLocation方法。以下是getLocation方法的代碼。
私人?虛空?get location(){
位置?loc
LocationManager?洛克人;
位置提供者?locPro
列表& ltLocationProvider & gt?proList
setContentView(r . layout . laoding);
洛克人。=?(LocationManager)?getSystemService(LOCATION _ SERVICE);
proList?=?loc man . get providers();
locPro?=?prolist . get(0);
loc?=?loc man . getcurrentlocation(loc pro . getname());
Lat?=?(float)loc . get latitude();
朗嗎?=?(float)loc . get longitude();
create view();
setContentView(custom view);
此時,節目開始變得更加有趣。但遺憾的是,谷歌在這方面的文檔仍然相對較少。在程序的變量聲明之後,我們需要演示壹些加載信息。R.layout.loading符合另壹個簡單的XML布局視圖。只需調用setContentView方法,就可以用再現的信息重新繪制屏幕。
讀者應該註意:在編譯時,Android將預打包所有XML布局數據。如果我們想在編譯後改變布局屬性,我們必須根據規定在源程序中做這些事情。
獲取LocationManager的唯壹方法是通過調用getSystemService()方法。通過使用LocationManager,我們可以獲得位置提供者的列表。在真正的手持設備中,該列表包含壹些GPS服務。事實上,我們希望選擇壹個功能更強大、更精確的GPS,而不需要額外的服務。現在,模擬器中提供了壹個用於測試的GPS,它來自舊金山。可以上傳和測試定制的GPS文件。如果我們想測試更復雜的應用程序,來自舊金山的GPS可能不適合。
目前,我們可以使用位置管理器和位置提供器來調用getCurrentLocation。該方法返回該機器當前位置的快照,該快照將作為Location對象提供。在手持設備中,我們可以獲得當前位置的經度和緯度。現在,使用這個虛擬手持設備,我們可以得到這個示例程序的最終結果:顯示壹個定制的視圖。
動詞 (verb的縮寫)使用自定義視圖
最簡單的形式是,Android中的視圖只需要重載壹個onDraw方法。自定義視圖可以是復雜的3D實現,也可以是非常簡單的文本形式。下面的CreateView方法列出了您在上面看到的內容。
公共的?虛空?create view(){
自定義視圖?=?新的?自定義視圖(this);
}這個方法只是調用CustomView對象的構造函數。CustomView類定義如下:
公共的?班級?自定義視圖?延伸?查看{?
LocateMe?霸王;
公共的?自定義視圖(LocateMe?pCtx){?
超級(pCtx);?
霸王?=?pCtx
}
公共的?虛空?onDraw(畫布?CVS){?
油漆?p?=?新的?paint();?
字符串?板條?=?“緯度:?”?+?overlord . get lat();?
字符串?斯隆。=?“經度:?”?+?overlord . getlon();?
CVS . drawtext(sLat?,?32,?32,?p);?
CVS . drawtext(sLon,?32,?44,?p);
}
}這個定制的Android視圖獲取經度和偏差的測試數據,並將這些數據顯示在屏幕上。這需要壹個指向LocateMe的指針,而Activity類是整個應用程序的核心。其兩種方法是構造法和奧德勞法。該構造函數調用超類的構造函數並導致活動指針中斷。onDraw方法將創建壹個新的Paint對象(它封裝了顏色、透明度和其他主題信息),該對象將訪問顏色主題。在這個程序中,使用畫布指針在屏幕上安裝和繪制用於顯示的字符串。這幅畫布看起來與我們所知的J2ME奧運會非常相似。
第六,Android展望
從純開發的角度來看,Android是壹個非常強大的SDK。它使用基於XML的布局和自定義視圖來統壹。您還可以使用滾動條、地圖和其他組件。所有這些都可以由開發人員重載或定制。但是它提供的文檔非常粗糙。文檔中沒有像SMS這樣的技術,但總的來說,Android SDK仍然非常有前途。這也符合谷歌承諾的“First Look”SDK。現在我們要做的就是等待谷歌發布第壹款基於Android的手機並使用它。
如果您滿意,請點擊右側采納答案。如果您有任何問題,請點擊提問。
希望我的回答對妳有幫助,希望采納!
~?O(∩_∩)O ~