《Android程序設(shè)計及實(shí)踐》課件第8章 Android特色開發(fā)_第1頁
《Android程序設(shè)計及實(shí)踐》課件第8章 Android特色開發(fā)_第2頁
《Android程序設(shè)計及實(shí)踐》課件第8章 Android特色開發(fā)_第3頁
《Android程序設(shè)計及實(shí)踐》課件第8章 Android特色開發(fā)_第4頁
《Android程序設(shè)計及實(shí)踐》課件第8章 Android特色開發(fā)_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

-1-傳感器的使用地圖定位Activity當(dāng)作AlertDialog顯示Fragment的使用為ActionBar添加Tabs本章目標(biāo)傳感器的使用傳感器能夠探測、感受外界的信號、物理?xiàng)l件(如光、熱、濕度)或化學(xué)組成(如煙霧),并將探知的信息按照一定規(guī)律變換成為電信號或其他所需形式的信息輸出,滿足對信息的傳輸、處理、存儲、顯示、記錄和控制等要求,傳感器是實(shí)現(xiàn)自動檢測和自動控制的首要環(huán)節(jié)。Sensor類用于描述每個硬件傳感器的屬性-2-類型常量功能描述Sensor.TYPE_ACCELEROMETER加速傳感器,它沿著三個坐標(biāo)軸返回當(dāng)前的加速度Sensor.TYPE_GYROSCOPE陀螺儀傳感器,在三個坐標(biāo)軸上以角度為單位返回當(dāng)前設(shè)備方向Sensor.TYPE_LIGHT亮度傳感器,以lux(勒克斯)為單位返回單個值的環(huán)境光傳感器,描述了環(huán)境光強(qiáng)度,用于動態(tài)控制屏幕亮度Sensor.TYPE_MAGNETIC_FIELD地磁傳感器,沿著三個坐標(biāo)軸確定當(dāng)前的磁場Sensor.TYPE_ORIENTATION方向傳感器,返回設(shè)備的方向Sensor.TYPE_PRESSURE壓力傳感器,以kilopascals(千帕斯卡)為單位返回單個值的壓力傳感器,該值表示了在當(dāng)前設(shè)備上所施加的壓力Sensor.TYPE_PROXIMITY近程傳感器,以米為單位指示設(shè)備與目標(biāo)對象之間距離的鄰近距離傳感器,如何選擇目標(biāo)對象以及支持的距離,將取決于鄰近距離探測器的硬件實(shí)現(xiàn)。鄰近距離傳感器的一個典型的用法是在用戶的耳朵承受該設(shè)備時進(jìn)行檢測并自動調(diào)整屏幕的亮度或者初始化一個語音命令Sensor.TYPE_TEMPERATURE溫度傳感器,以攝氏度為單位返回溫度的溫度計,所返回的溫度可以是周圍房間溫度、設(shè)備電池溫度或者遠(yuǎn)程傳感器溫度SensorManagerSensorManager是傳感器的一個綜合管理類。-3-方法功能描述getSensorList()獲得指定傳感器類型的所有可用的傳感器列表registerListener()注冊一個傳感器監(jiān)聽器unregisterListener()注銷一個傳感器監(jiān)聽器getDefaultSensor()獲得默認(rèn)的傳感器對象getInclination()得到地磁傳感器傾斜角的弧度值getOrientation()得到設(shè)備旋轉(zhuǎn)的方向常量.功能描述SENSOR_DELAY_FASTEST以最快速的更新速率SENSOR_DELAY_GAME選擇一個適合在控制游戲中使用的更新速率SENSOR_DELAY_NORMAL默認(rèn)更新速率SENSOR_DELAY_UI指定一個適于更新UI功能的速率SENSOR_STATUS_ACCURACY_LOW傳感器的精確度很低并且需要校準(zhǔn)SENSOR_STATUS_ACCURACY_MEDIUM傳感器的數(shù)據(jù)具有平均精確度,校準(zhǔn)可能會改善閱讀效果SENSOR_STATUS_ACCURACY_HIGH傳感器使用的是最高精確度SENSOR_STATUS_UNRELIABLE傳感器數(shù)據(jù)不可靠,需要校準(zhǔn)傳感器且當(dāng)前不能讀取數(shù)據(jù)SensorManagersm=(SensorManager)getSystemService(SENSOR_SERVICE);List<Sensor>sensors=sm.getSensorList(Sensor.TYPE_ORIENTATION);List<Sensor>sensors=sm.getSensorList(Sensor.TYPE_ALL);SensorEventListenerSensorEventListener是傳感器監(jiān)聽接口,包括兩個方法onSensorChanged(SensorEventevent)方法:監(jiān)控傳感器值的改變,該方法的參數(shù)是一個SensorEvent對象,該對象具有sensor(傳感器對象)、accuracy(精確度)、values(新值)、timestamp(事件)4個描述傳感器事件的屬性。onAccuracyChanged(Sensorsensor,intaccuracy)方法:響應(yīng)傳感器精準(zhǔn)度的變化,該方法具有兩個參數(shù):第1個參數(shù)表示傳感器;第2個參數(shù)是傳感器精準(zhǔn)度的反饋值。-4-//注冊一個傳感器監(jiān)聽器sm.registerListener(this,sensor,SensorManager.SENSOR_DELAY_NORMAL);//注銷傳感器監(jiān)聽器sm.unregisterListener(this);描述8.1地圖定位-百度地圖SDK由于傳統(tǒng)GPS定位具有啟動時間長、室內(nèi)可能無法定位等弊端,因此為了使用戶得到更好的體驗(yàn),實(shí)際開發(fā)中應(yīng)盡量避免使用傳統(tǒng)GPS定位方法。本節(jié)將介紹如何使用百度地圖SDK實(shí)現(xiàn)定位功能。-5-百度地圖SDK介紹地圖:提供地圖(2D、3D)的展示和縮放、平移、旋轉(zhuǎn)、改變視角等地圖操作;地理編碼:提供地理坐標(biāo)和地址之間相互轉(zhuǎn)換的能力;線路規(guī)劃:支持公交信息查詢、公交換乘查詢、駕車線路規(guī)劃和步行路徑檢索;覆蓋物:提供多種地圖覆蓋物(自定義標(biāo)注、幾何圖形、文字繪制、地形圖圖層、熱力圖圖層等),滿足開發(fā)者的各種需求;定位:采用多種定位模式,使用定位SDK獲取位置信息,使用地圖SDK我的位置圖層進(jìn)行位置展示;導(dǎo)航:支持調(diào)啟百度地圖導(dǎo)航和Web導(dǎo)航來滿足用戶對導(dǎo)航功能的需求除此之外,還有POI檢索、LBS云檢索、離線地圖和其他功能等。地圖定位-百度地圖SDK開發(fā)百度地圖SDK的準(zhǔn)備工作:登錄百度地圖開放平臺注冊百度開發(fā)者帳號(/map/index.php)申請開發(fā)百度地圖SDK所使用的密鑰獲取SDK開發(fā)文檔與支持參考開發(fā)文檔與百度地圖官方提供的DEMO進(jìn)行開發(fā)-6-注意:在測試百度地圖時,模擬器可能無法顯示地圖,請使用真機(jī)進(jìn)行測試;直接運(yùn)行此項(xiàng)目會無法顯示地圖,這是因?yàn)樯暾埫荑€時填寫的安全碼組成方式為“數(shù)字簽名+;+包名”,數(shù)字簽名可能不同,因此還是建議自行申請密鑰。特殊的對話框有時我們希望能夠展示更加復(fù)雜的Dialog,并且能夠?qū)ζ渲械目丶M(jìn)行靈活的事件處理等操作,雖然使用AlertDialog同樣能夠?qū)崿F(xiàn),但是相對于Activity的靈活性來說,還是有所不足。本節(jié)主要介紹如何將Activity作為Dialog顯示。-7-將Activity作為Dialog顯示,主要分為以下幾個步驟:編寫主題樣式(為了保留Android4.0主題樣式,需要編寫此文件,否則可省略)在AndroidManifest.xml中對此Activity定義主題樣式獲取SDK開發(fā)文檔與支持為Activity編寫layout布局文件Fragment簡介1-8-Fragment(碎片)是Android3.0時添加的新控件,F(xiàn)ragment和Activity十分相似,甚至可以通過簡單的修改Activity的父類和部分生命周期方法即可輕松地將Activity轉(zhuǎn)為Fragment。Fragment還提供了靈活的頁面布局方式,可以將多個Fragmen合并放到同一個Activity中,也可以同一個Fragment重用到多個Activity中,F(xiàn)ragment和Activity非常相似,具有自己的生命周期,可以接收自己的事件,并且允許用戶動態(tài)的對其進(jìn)行添加、刪除和替換操作。Fragment不能單獨(dú)顯示,需要依附一個Activity才能顯示,而且他的生命周期直接受到所依附的Activity生命周期影響。Fragment簡介2-9-一個新聞應(yīng)用,主要有兩個頁面,分別為FragmentA和FragmentB,F(xiàn)ragmentA是新聞列表頁面,F(xiàn)ragmentB是新聞詳情頁,點(diǎn)擊FragmentA中的條目,內(nèi)容會在FragmentB中展示。如果在平板電腦上應(yīng)用,那么我們可以將這兩個Fragment同時顯示到一個Activity中,從而使頁面更加豐富,而且用戶體驗(yàn)簡單方便;如果是應(yīng)用到更小屏幕的手機(jī),那么就需要兩個頁面分別來展示列表和內(nèi)容。Fragment生命周期-10-Activity中添加Fragment-11-向Activity添加Fragment有兩種方式通過activity的layout布局文件添加<fragmentandroid:id="@+id/fragmenta"android:name="com.dh.ch08_8d4.MyFragmentA"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_weight="1"/>通過代碼動態(tài)添加FragmentMyFragmentAfragmentA=newMyFragmentA();MyFragmentBfragmentB=newMyFragmentB();FragmentManagermanager=getFragmentManager();FragmentTransactiontransaction=manager.beginTransaction();transaction.add(R.id.fl_fragmenta_activity,fragmentA);transaction.add(R.id.fl_fragmentb_activity,fragmentB);mit();ActionBar擴(kuò)展-Tabs-12-目前各種各樣的Tabs(選項(xiàng)卡)應(yīng)用非常廣泛,它最大的用途就是實(shí)現(xiàn)多個頁面來回切換,使用起來非常便捷,ActionBar提供了一個更加智能,更加統(tǒng)一的Tabs,他可以實(shí)現(xiàn)自動匹配屏幕大小,因此,也是官方推薦的一種展示方式。ActionBar擴(kuò)展-Tabs-13-在ActionBar的Tabs中,每個Tab對應(yīng)一個Fragment,因此首先需要創(chuàng)建3個FragmentprotectedclassMyTabListenerimplementsTabListener{ ... publicMyTabListener(Activityact,Stringtag,Class<?>fragmentCls){…} //Tab被選中時調(diào)用

@Override publicvoidonTabSelected(Tabarg0,FragmentTransactionft){…} //Tab取消選中

@Override publicvoidonTabUnselected(Tabarg0,FragmentTransactionft){…} //Tab被重新選中

@Override publicvoidonTabReselected(Tabarg0,FragmentTransactionft){…}}在MyActionBarActivity.java中添加內(nèi)部類MyTabListener用作監(jiān)聽Tabs點(diǎn)擊事件ActionBar擴(kuò)展-Tabs-14-//顯示ActionBarTabsactionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);//向Tabs中添加Fragment并進(jìn)行監(jiān)聽Tabtab=actionBar.newTab().setText("AFragment").setTabListener( newMyTabListener(this,"a",AFragment.class));actionBar.addTab(tab);在MyActionBarActivity.java的onCreate()中添加Tab-15-小結(jié):Android對每個設(shè)備的傳感器實(shí)現(xiàn)進(jìn)行了抽象,Sensor類用于描述每個

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論