瘋狂Android講義(第3版) ( 簡體 字) |
作者:李剛 | 類別:1. -> 程式設計 -> 手機程式 -> Android |
譯者: |
出版社:電子工業出版社 | 3dWoo書號: 41463 詢問書籍請說出此書號!【缺書】 【不接受訂購】 |
出版日:6/1/2015 |
頁數:780 |
光碟數:1 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
【不接受訂購】 |
ISBN:9787121259586 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:移動互聯網熱潮在全世界引起了巨大反響,移動互聯網正在改變著傳統互聯網的格局,全世界的IT公司爭相將業務重心向移動互聯網轉型,移動互聯網業務也成為業內最大的利潤增長點。 Android系統就是一個開放式的移動互聯網操作系統,Android已經成為應用最廣的移動互聯網平臺,對于Java語言而言,Android系統給了Java一個新的機會。在過去的歲月中,Java語言作為服務器端編程語言,已經取得了極大的成功,Java EE平臺發展得非常成熟,而且一直是電信、移動、銀行、證券、電子商務應用的首選平臺、不爭的王者。但在客戶端應用開發方面,Java語言一直表現不佳,雖然Java既有AWT/Swing界面開發庫,也有SWT/JFace界面開發庫,但對于客戶端應用開發人員而言,大多不愿意選擇Java語言。Android系統的出現改變了這種局面,Android是一個非常優秀的手機、平板電腦操作系統,正不斷蠶食傳統的桌面操作系統,而Android平臺應用的開發語言就是Java,這意味著Java語言將可以在客戶端應用開發上大展拳腳。 Android已經成為應用最廣的手機、平板電腦操作系統,采用Java語言開發的Android應用也越來越多。不過需要指出的是,運行Android平臺的硬件只是手機、平臺電腦等便攜式設備,這些設備的計算能力、數據存儲能力都是有限的,因此不太可能在Android平臺上部署大型企業級應用,因此Android應用可能以純粹客戶端應用的角色出現,然后通過網絡與傳統大型應用交互,充當大型企業應用的客戶端,比如現在已經出現的淘寶Android客戶端、趕集網Android客戶端,它們都是這種發展趨勢下的產物。 對于Java開發者來說,以前主要在Java EE平臺上從事服務器端應用開發,但在移動互聯網的趨勢下,Java開發者必然面臨著為這些應用開發客戶端的需求。對于Java開發者來說,Android應用開發既是一個挑戰,也是一個機遇—挑戰是:掌握Android應用開發需要重新投入學習成本;機遇是:掌握Android開發之后將可讓職業生涯達到一個新的高度,而且移動互聯網與Android必然帶來更多的就業機會與創業機會,這都值得當下的開發者好好把握。 本書是《瘋狂Android講義》的第3版,本書真正基于最新的Android 5,而且本書采用了Google推薦的IDE:Android Studio作為開發工具。書中每個案例、每個截圖都是基于Android 5的。除此之外,本書詳細介紹了Android 5新增的Material設計包含的elevation、translationZ和實時陰影等;還介紹了Android 5新增的Camera v2、屏幕捕捉、新型傳感器等相關內容。 衷心感謝 瘋狂Java體系圖書能走到今天,廣大讀者的認同與支持是筆者堅持創作的最大動力。廣大讀者的認同,已讓瘋狂Java體系圖書的銷量穩占國內第一。而《瘋狂Android講義》在所有Android圖書銷量中穩居榜首,在京東網搜索“android”關鍵字相關的圖書,可以看到《瘋狂Android講義》實際排在第1位(第1位并非介紹Android開發的圖書),截圖如下: 在當當網搜索“android”關鍵字相關的圖書,可以看到《瘋狂Android講義》排在第1位,截圖如下: 在亞馬遜網搜索“android”關鍵字相關的圖書,可以看到《瘋狂Android講義》排在第1位,截圖如下: 誠摯地感謝廣大讀者的支持與愛護:你們的支持讓瘋狂Java圖書沒有放棄,你們的激勵讓瘋狂Java圖書茁壯成長,你們的反饋讓瘋狂Java圖書日臻完善;同時也感謝博文視點張月萍等編輯、瘋狂軟件教育中心技術團隊一貫的支持。 本書有什么特點 本書是一本介紹Android應用開發的實用圖書,全面介紹了Android 5平臺上應用開發各方面的知識。與市面上有些介紹Android編程的圖書不同,本書并沒有花太多篇幅介紹Android的發展歷史(因為這些內容到處都是),完全沒有介紹Android市場(因為它只是一個交易網站,與Android開發無關,但有些圖書甚至用整整一章來介紹它),也沒有介紹JDK安裝、環境變量配置等內容—筆者假設讀者已經具有一定的Java功底。換句話來說,如果你對JDK安裝、Java基本語法還不熟,本書并不適合你,建議先閱讀《瘋狂Java講義》。 本書只用了一章來介紹如何搭建Android開發環境、Android應用結構,當然也簡要說明了Android的發展歷史。可能依然會有人覺得本書篇幅很多,這是由于本書覆蓋了Android開發絕大部分知識,而且很多知識不僅介紹了相應的理論,并通過相應的實例程序給出了示范。 需要說明的是,本書只是一本介紹Android實際開發的圖書,而不是一本關于所謂“思想”的書,不要指望學習本書能提高你所謂的“Android思想”,所以奉勸那些希望提高編程思想的讀者不要閱讀本書。 本書更不是一本看完之后可以“吹噓、炫耀”的書—因為本書并沒有堆砌一堆“深奧”的新名詞、一堆“高深”的思想,本書保持了“瘋狂Java體系”的一貫風格:操作步驟詳細,編程思路清晰,語言平實。只要讀者有基本的Java基礎,閱讀本書不會有任何問題,看完本書不會讓你覺得自己突然“高深”了,“高深”到自己都理解不了。 認真看完本書,把書中所有示例都練習一遍,本書帶給你的只是9個字:“看得懂、學得會、做得出”。本書不能讓你認識一堆新名詞,只會讓你學會實際的Android應用開發。 如果讀者有非常扎實的Java基本功、良好的英文閱讀能力,而且對圖形用戶界面編程也有豐富的經驗,不管是AWT/Swing編程的經驗,還是SWT編程的經驗,抑或是Windows界面編程的經驗都行,那么沒有多大必要購買本書,只要花幾天時間快速瀏覽本書即可動手編程了。如果遇到某個類、某個功能不太確定,直接查閱Android Dev Guide和API參考文檔即可。 不管怎樣,只要讀者在閱讀本書時遇到知識上的問題,都可以登錄瘋狂Java聯盟(http://www.crazyit.org)與廣大Java學習者交流,筆者也會通過該平臺與大家一起交流、學習。 本書還具有如下幾個特點。 1.知識全面,覆蓋面廣 本書深入闡述了Android應用開發的Activity、Service、BroadcastReceiver與ContentProvider四大組件,并詳細介紹了Android全部圖形界面組件的功能和用法,Android各種資源的管理與用法,Android圖形/圖像處理,事件處理,Android輸入/輸出處理,音頻/視頻等多媒體開發,OpenGL-ES開發,網絡通信,傳感器和GPS開發等內容,全面覆蓋了Android官方指南,在某些內容上更加具體、深入。 2.內容實際,實用性強 本書并不局限于枯燥的理論介紹,而是采用了“項目驅動”的方式來講授知識點,全書有近百個實例,幾乎每個知識點都可找到對應的參考實例。本書最后還提供了“合金彈頭”“電子拍賣系統Android客戶端”兩個應用,具有極高的參考價值。 3.講解詳細,上手容易 本書保持了“瘋狂Java體系”的一貫風格:操作步驟詳細,編程思路清晰,語言平實。只要讀者有一定的Java編程基礎,閱讀本書將可以很輕松地上手Android應用開發;學習完本書最后的兩個案例后,讀者即可完全滿足企業中實際Android應用開發的要求。 本書寫給誰看 如果你已經具備一定的Java基礎和XML基礎,或已經學完了《瘋狂Java講義》一書,那么你閱讀此書將會比較適合;如果你有不錯的Java基礎,而且有一定的圖形界面編程經驗,那么閱讀本書將可以很快掌握Android應用開發。如果你對Java的掌握還不熟練,比如對JDK安裝、Java基本語法都不熟練,建議遵從學習規律,循序漸進,暫時不要購買、閱讀此書。 2015年4月 |
內容簡介:(含CD光盤1張)移動互聯網已經成為當今世界發展最快、市場潛力最大、前景最誘人的業務,而Android則是移動互聯網上市場占有率最高的平臺。 本書是《瘋狂Android講義》的第3版,本書基于最新的Android 5,并采用了Google推薦的IDE:Android Studio作為開發工具,書中每個案例、每個截圖都全面升級到Android 5。本書全面介紹了Android應用開發的相關知識,全書內容覆蓋了Android用戶界面編程、Android四大組件、Android資源訪問、圖形/圖像處理、事件處理機制、Android輸入/輸出處理、音頻/視頻多媒體應用開發、OpenGL與3D應用開發、網絡通信編程、Android平臺的Web Service、傳感器應用開發、GPS應用開發、整合第三方Map服務等。 本書并不局限于介紹Android編程的各種理論知識,而是從“項目驅動”的角度來講授理論,全書一共包括近百個實例,這些示范性的實例既可幫助讀者更好地理解各知識點在實際開發中的應用,也可供讀者在實際開發時作為參考、拿來就用。本書最后還提供了兩個實用的案例:合金彈頭和電子拍賣系統Android客戶端,具有極高的參考價值。本書提供了配套的答疑網站,如果讀者在閱讀本書時遇到了技術問題,可以登錄瘋狂Java聯盟(http://www.crazyit.org)發帖,筆者將會及時予以解答。 |
目錄:第1章 Android應用和開發環境 1 1.1 Android的發展和歷史 2 1.1.1 Android的發展和簡介 2 1.1.2 Android 5.x平臺架構及特性 3 1.2 搭建Android開發環境 5 1.2.1 安裝Android Studio 5 1.2.2 下載和安裝Android SDK 8 1.2.3 安裝運行、調試環境 11 1.3 Android常用開發工具的用法 16 1.3.1 在命令行創建、刪除和瀏覽AVD 16 1.3.2 使用Android模擬器(Emulator) 17 1.3.3 使用Monitor進行調試 18 1.3.4 Android Debug Bridge(ADB)的用法 19 1.3.5 使用mksdcard管理虛擬SD卡 20 1.4 開始第一個Android應用 21 1.4.1 使用Android Studio開發第一個Android應用 21 1.4.2 通過Andorid Studio運行Android應用 24 1.5 Android應用結構分析 25 1.5.1 創建一個Android應用 25 1.5.2 自動生成的R.java 28 1.5.3 res目錄說明 29 1.5.4 Android應用的清單文件:AndroidManifest.xml 30 1.5.5 應用程序權限說明 31 1.6 Android應用的基本組件介紹 32 1.6.1 Activity和View 32 1.6.2 Service 33 1.6.3 BroadcastReceiver 33 1.6.4 ContentProvider 33 1.6.5 Intent和IntentFilter 34 1.7 簽名Android應用程序 35 1.7.1 使用Android Studio對Android應用簽名 35 1.7.2 使用命令對APK包簽名 36 1.8 本章小結 37
第2章 Android應用的界面編程 38 2.1 界面編程與視圖(View)組件 39 2.1.1 視圖組件與容器組件 39 2.1.2 使用XML布局文件控制UI界面 44 2.1.3 在代碼中控制UI界面 44 實例:用編程的方式開發UI界面 44 2.1.4 使用XML布局文件和Java代碼混合控制UI界面 46 實例:簡單圖片瀏覽器 46 2.1.5 開發自定義View 47 實例:跟隨手指的小球 48 2.2 第1組UI組件:布局管理器 49 2.2.1 線性布局 50 2.2.2 表格布局 52 實例:豐富的表格布局 53 2.2.3 幀布局 55 實例:霓虹燈效果 57 2.2.4 相對布局 58 實例:梅花布局效果 59 2.2.5 網格布局 60 實例:計算器界面 61 2.2.6 絕對布局 62 實例:登錄界面 63 2.3 第2組UI組件:TextView及其子類 64 2.3.1 文本框(TextView)與編輯框(EditText)的功能和用法 64 實例:不同顏色、字體、帶鏈接的文本 67 實例:圓角邊框、漸變背景的TextView 68 2.3.2 EditText的功能與用法 70 實例:用戶友好的輸入界面 70 2.3.3 按鈕(Button)組件的功能與用法 72 實例:按鈕、圓形按鈕、帶文字的圖片按鈕 72 2.3.4 使用9Patch圖片作為背景 73 2.3.5 單選鈕(RadioButton)和復選框(CheckBox)的功能與用法 74 實例:利用單選鈕、復選框獲取用戶信息 75 2.3.6 狀態開關按鈕(ToggleButton)和開關(Switch)的功能與用法 77 實例:動態控制布局 77 2.3.7 時鐘(AnalogClock和TextClock)的功能與用法 79 實例:手機里的“勞力士” 79 2.3.8 計時器(Chronometer) 80 2.4 第3組UI組件:ImageView及其子類 81 實例:圖片瀏覽器 83 實例:強大的圖片按鈕 86 實例:使用QuickContactBadge關聯聯系人 87 2.5 第4組UI組件:AdapterView及子類 88 2.5.1 列表視圖(ListView)和ListActivity 89 實例:改變分隔條、基于數組的ListView 90 2.5.2 Adapter接口及實現類 91 實例:使用ArrayAdapter創建ListView 91 實例:基于ListActivity實現列表 93 實例:使用SimpleAdapter創建ListView 94 實例:擴展BaseAdapter實現不存儲列表項的ListView 97 2.5.3 自動完成文本框(AutoCompleteTextView)的功能與用法 98 2.5.4 網格視圖(GridView)的功能與用法 100 實例:帶預覽的圖片瀏覽器 101 2.5.5 可展開的列表組件(ExpandableListView) 103 2.5.6 Spinner的功能與用法 106 實例:讓用戶選擇 106 2.5.7 AdapterViewFlipper的功能與用法 108 實例:自動播放的圖片庫 108 2.5.8 StackView的功能與用法 111 實例:疊在一起的圖片 111 2.6 第5組UI組件:ProgressBar及其子類 112 2.6.1 進度條(ProgressBar)的功能與用法 113 實例:顯示在標題上的進度條 116 2.6.2 拖動條(SeekBar)的功能與用法 117 實例:通過拖動滑塊來改變圖片的透明度 117 2.6.3 星級評分條(RatingBar)的功能與用法 118 實例:通過星級改變圖片的透明度 119 2.7 第6組UI組件:ViewAnimator及其子類 120 2.7.1 ViewSwitcher的功能與用法 120 實例:仿Android系統Launcher界面 120 2.7.2 圖像切換器(ImageSwitcher)的功能與用法 125 實例:支持動畫的圖片瀏覽器 125 2.7.3 文本切換器(TextSwitcher)的功能與用法 127 2.7.4 ViewFlipper的功能與用法 129 實例:自動播放的圖片庫 129 2.8 各種雜項組件 131 2.8.1 使用Toast顯示提示信息框 131 實例:帶圖片的消息提示 131 2.8.2 日歷視圖(CalendarView)組件的功能和用法 133 實例:選擇您的生日 133 2.8.3 日期、時間選擇器(DatePicker和TimePicker)的功能和用法 134 實例:用戶選擇日期、時間 135 2.8.4 數值選擇器(NumberPicker)的功能與用法 137 實例:選擇您意向的價格范圍 137 2.8.5 搜索框(SearchView)的功能與用法 139 實例:搜索 139 2.8.6 選項卡(TabHost)的功能和用法 141 實例:通話記錄界面 141 2.8.7 滾動視圖(ScrollView)的功能和用法 143 實例:可垂直和水平滾動的視圖 144 2.8.8 Notification的功能與用法 144 實例:加薪通知 145 2.9 第7組UI組件:對話框 146 2.9.1 使用AlertDialog創建對話框 147 實例:顯示提示消息的對話框 147 實例:簡單列表項對話框 149 實例:單選列表項對話框 149 實例:多選列表項對話框 150 實例:自定義列表項對話框 151 實例:自定義View對話框 152 2.9.2 對話框風格的窗口 154 2.9.3 使用PopupWindow 155 2.9.4 使用DatePickerDialog、TimePickerDialog 156 2.9.5 使用ProgressDialog創建進度對話框 158 2.10 菜單 160 2.10.1 選項菜單和子菜單(SubMenu) 161 2.10.2 使用監聽器來監聽菜單事件 164 2.10.3 創建多選菜單項和單選菜單項 164 2.10.4 設置與菜單項關聯的Activity 165 2.10.5 上下文菜單 166 2.10.6 使用XML文件定義菜單 167 實例:使用XML資源文件定義菜單 168 2.10.7 使用PopupMenu創建彈出式菜單 171 2.11 使用活動條(ActionBar) 173 2.11.1 啟用ActionBar 173 2.11.2 使用ActionBar顯示選項菜單項 174 2.11.3 啟用程序圖標導航 176 2.11.4 添加Action View 177 實例:“標題”上的時鐘 177 2.11.5 使用ActionBar實現Tab導航 178 實例:ActionBar結合Fragment實現Tab導航 179 實例:Android 3.0以前的Fragment支持 182 2.11.6 使用ActionBar實現下拉式導航 185 實例:ActionBar結合Fragment實現下拉式導航 185 2.12 本章小結 187 第3章 Android的事件處理 188 3.1 Android事件處理概述 189 3.2 基于監聽的事件處理 189 3.2.1 監聽的處理模型 189 3.2.2 事件和事件監聽器 192 實例:控制飛機移動 192 3.2.3 內部類作為事件監聽器類 195 3.2.4 外部類作為事件監聽器類 195 3.2.5 Activity本身作為事件監聽器類 197 3.2.6 匿名內部類作為事件監聽器類 197 3.2.7 直接綁定到標簽 198 3.3 基于回調的事件處理 199 3.3.1 回調機制與監聽機制 199 3.3.2 基于回調的事件傳播 201 3.3.3 重寫onTouchEvent方法響應觸摸屏事件 202 實例:通過回調實現跟隨手指的小球 203 3.4 響應系統設置的事件 204 3.4.1 Configuration類簡介 204 實例:獲取系統設備狀態 205 3.4.2 重寫onConfigurationChanged方法響應系統設置更改 206 實例:監聽屏幕方向的改變 206 3.5 Handler消息傳遞機制 208 3.5.1 Handler類簡介 208 實例:自動播放動畫 209 3.5.2 Handler、Loop、MessageQueue的工作原理 210 實例:使用新線程計算質數 211 3.6 異步任務(AsyncTask) 213 實例:使用異步任務執行下載 214 3.7 本章小結 217 第4章 深入理解Activity與Fragment 218 4.1 建立、配置和使用Activity 219 4.1.1 Activity 219 實例:用LauncherActivity開發啟動Activity的列表 220 實例:使用ExpandableListActivity 實現可展開的Activity 221 實例:PreferenceActivity結合PreferenceFragment實現參數設置界面 223 4.1.2 配置Activity 227 4.1.3 啟動、關閉Activity 229 4.1.4 使用Bundle在Activity之間交換數據 231 實例:用第二個Activity處理注冊信息 232 4.1.5 啟動其他Activity并返回結果 235 實例:用第二個Activity讓用戶選擇信息 235 4.2 Activity的回調機制 239 4.3 Activity的生命周期與加載模式 240 4.3.1 Activity的生命周期演示 240 4.3.2 Activity與Servlet的相似性和區別 243 4.3.3 Activity的4種加載模式 244 4.4 Fragment詳解 249 4.4.1 Fragment概述及其設計初衷 249 4.4.2 創建Fragment 250 實例:開發顯示圖書詳情的Fragment 251 實例:創建ListFragment 253 4.4.3 Fragment與Activity通信 254 4.4.4 Fragment管理與Fragment事務 256 實例:開發兼顧屏幕分辨率的應用 257 4.5 Fragment的生命周期 260 4.6 本章小結 264 第5章 使用Intent和IntentFilter進行通信 265 5.1 Intent對象簡述 266 5.2 Intent的屬性及intent-filter配置 267 5.2.1 Component屬性 267 5.2.2 Action、Category屬性與intent-filter配置 269 5.2.3 指定Action、Category調用系統Activity 273 實例:查看并獲取聯系人電話 274 實例:返回系統Home桌面 277 5.2.4 Data、Type屬性與intent-filter配置 278 實例:使用Action、Data屬性啟動系統Activity 284 5.2.5 Extra屬性 286 5.2.6 Flag屬性 286 5.3 使用Intent創建Tab頁 287 5.4 本章小結 288 第6章 Android應用的資源 289 6.1 應用資源概述 290 6.1.1 資源的類型以及存儲方式 290 6.1.2 使用資源 291 6.2 字符串、顏色、尺寸資源 293 6.2.1 顏色值的定義 293 6.2.2 定義字符串、顏色、尺寸資源文件 294 6.2.3 使用字符串、顏色、尺寸資源 295 6.3 數組(Array)資源 298 6.4 使用Drawable資源 300 6.4.1 圖片資源 300 6.4.2 StateListDrawable資源 301 實例:高亮顯示正在輸入的文本框 301 6.4.3 LayerDrawable資源 302 實例:定制拖動條的外觀 303 6.4.4 ShapeDrawable資源 304 實例:橢圓形、漸變背景的文本框 305 6.4.5 ClipDrawable資源 306 實例:徐徐展開的風景 306 6.4.6 AnimationDrawable資源 308 6.5 屬性動畫(Property Animation)資源 310 實例:不斷漸變的背景色 311 6.6 使用原始XML資源 312 6.6.1 定義原始XML資源 312 6.6.2 使用原始XML文件 313 6.7 使用布局(Layout)資源 314 6.8 使用菜單(Menu)資源 315 6.9 樣式(Style)和主題(Theme)資源 315 6.9.1 樣式資源 315 6.9.2 主題資源 316 實例:給所有窗口添加邊框、背景 317 6.9.3 Android 5.0新增的Material主題 318 6.10 屬性(Attribute)資源 318 6.11 使用原始資源 321 6.12 國際化和資源自適應 323 6.12.1 Java國際化的思路 323 6.12.2 Java支持的國家和語言 324 6.12.3 完成程序國際化 324 6.12.4 為Android應用提供國際化資源 326 6.12.5 國際化Android應用 327 6.13 自適應不同屏幕的資源 329 6.14 本章小結 332 第7章 圖形與圖像處理 333 7.1 使用簡單圖片 334 7.1.1 使用Drawable對象 334 7.1.2 Bitmap和BitmapFactory 334 7.2 繪圖 337 7.2.1 Android繪圖基礎:Canvas、Paint等 337 7.2.2 Path類 341 7.2.3 繪制游戲動畫 344 實例:采用雙緩沖實現畫圖板 344 實例:彈球游戲 348 7.3 圖形特效處理 351 7.3.1 使用Matrix控制變換 351 實例:移動游戲背景 353 7.3.2 使用drawBitmapMesh扭曲圖像 355 實例:可揉動的圖片 356 7.3.3 使用Shader填充圖形 358 7.4 逐幀(Frame)動畫 360 7.4.1 AnimationDrawable與逐幀動畫 360 實例:在指定點爆炸 362 7.5 補間(Tween)動畫 364 7.5.1 Tween動畫與Interpolator 364 7.5.2 位置、大小、旋轉度、透明度改變的補間動畫 366 實例:蝴蝶飛舞 368 7.5.3 自定義補間動畫 369 7.6 屬性動畫 373 7.6.1 屬性動畫的API 373 7.6.2 使用屬性動畫 375 實例:大珠小珠落玉盤 379 7.7 使用SurfaceView實現動畫 383 7.7.1 SurfaceView的繪圖機制 383 實例:基于SurfaceView開發示波器 386 7.8 本章小結 388 第8章 Android數據存儲與IO 389 8.1 使用SharedPreferences 390 8.1.1 SharedPreferences與Editor簡介 390 8.1.2 SharedPreferences的存儲位置和格式 391 實例:記錄應用程序的使用次數 393 8.2 File存儲 393 8.2.1 openFileOutput和openFileInput 393 8.2.2 讀寫SD卡上的文件 396 實例:SD卡文件瀏覽器 399 8.3 SQLite數據庫 402 8.3.1 SQLiteDatabase簡介 402 8.3.2 創建數據庫和表 404 8.3.3 使用SQL語句操作SQLite數據庫 404 8.3.4 使用sqlite3工具 406 8.3.5 使用特定方法操作SQLite數據庫 408 8.3.6 事務 410 8.3.7 SQLiteOpenHelper類 411 實例:英文生詞本 412 8.4 手勢(Gesture) 415 8.4.1 手勢檢測 415 實例:通過手勢縮放圖片 417 實例:通過手勢實現翻頁效果 419 8.4.2 增加手勢 422 8.4.3 識別用戶手勢 425 8.5 自動朗讀(TTS) 427 8.6 本章小結 429 第9章 使用ContentProvider實現數據共享 431 9.1 數據共享標準:ContentProvider 432 9.1.1 ContentProvider簡介 432 9.1.2 Uri簡介 433 9.1.3 使用ContentResolver操作數據 434 9.2 開發ContentProvider 435 9.2.1 ContentProvider與ContentResolver的關系 435 9.2.2 開發ContentProvider子類 436 9.2.3 配置ContentProvider 437 9.2.4 使用ContentResolver調用方法 438 9.2.5 創建ContentProvider的說明 440 實例:使用ContentProvider共享生詞本數據 441 9.3 操作系統的ContentProvider 446 9.3.1 使用ContentProvider管理聯系人 446 9.3.2 使用ContentProvider管理多媒體內容 452 9.4 監聽ContentProvider的數據改變 455 9.4.1 ContentObserver簡介 455 實例:監聽用戶發出的短信 456 9.5 本章小結 457 第10章 Service與BroadcastReceiver 458 10.1 Service簡介 459 10.1.1 創建、配置Service 459 10.1.2 啟動和停止Service 461 10.1.3 綁定本地Service并與之通信 462 10.1.4 Service的生命周期 466 10.1.5 使用IntentService 467 10.2 電話管理器(TelephonyManager) 470 實例:獲取網絡和SIM卡信息 470 實例:監聽手機來電 472 10.3 短信管理器(SmsManager) 473 實例:發送短信 473 實例:短信群發 474 10.4 音頻管理器(AudioManager) 477 10.4.1 AudioManager簡介 477 實例:使用AudioManager控制手機音頻 477 10.5 振動器(Vibrator) 479 10.5.1 Vibrator簡介 479 10.5.2 使用Vibrator控制手機振動 479 10.6 手機鬧鐘服務(AlarmManager) 480 10.6.1 AlarmManager簡介 480 10.6.2 設置鬧鐘 481 實例:定時更換壁紙 483 10.7 接收廣播消息 485 10.7.1 BroadcastReceiver簡介 485 10.7.2 發送廣播 486 10.7.3 有序廣播 488 實例:基于Service的音樂播放器 490 10.8 接收系統廣播消息 495 實例:開機自動運行的Service 495 實例:短信提醒 496 實例:手機電量提示 497 10.9 本章小結 498 第11章 多媒體應用開發 499 11.1 音頻和視頻的播放 500 11.1.1 使用MediaPlayer播放音頻 500 11.1.2 音樂特效控制 503 實例:音樂的示波器、均衡、重低音和音場 505 11.1.3 使用SoundPool播放音效 511 11.1.4 使用VideoView播放視頻 513 11.1.5 使用MediaPlayer和SurfaceView播放視頻 515 11.2 使用MediaRecorder錄制音頻 518 實例:錄制音樂 519 11.3 控制攝像頭拍照 521 11.3.1 使用Android 5.0的Camera v2拍照 521 實例:拍照時自動對焦 522 11.3.2 錄制視頻短片 530 實例:錄制生活短片 530 11.4 Android 5.0新增的屏幕捕捉 533 11.5 本章小結 536 第12章 OpenGL與3D開發 537 12.1 3D圖形與3D開發的基本知識 538 12.2 OpenGL和OpenGL ES簡介 539 12.3 繪制2D圖形 540 12.3.1 在Android應用中使用OpenGL ES 540 12.3.2 繪制平面上的多邊形 542 12.3.3 旋轉 548 12.4 繪制3D圖形 550 12.4.1 構建3D圖形 550 12.4.2 應用紋理貼圖 554 12.5 本章小結 559 第13章 Android網絡應用 560 13.1 基于TCP協議的網絡通信 561 13.1.1 TCP協議基礎 561 13.1.2 使用ServerSocket創建TCP服務器端 562 13.1.3 使用Socket進行通信 563 13.1.4 加入多線程 567 13.2 使用URL訪問網絡資源 573 13.2.1 使用URL讀取網絡資源 573 13.2.2 使用URLConnection提交請求 575 13.3 使用HTTP訪問網絡 580 13.3.1 使用HttpURLConnection 580 實例:多線程下載 580 13.3.2 使用Apache HttpClient 585 實例:訪問被保護資源 586 13.4 Android 5.0增強的WebView 590 13.4.1 使用WebView瀏覽網頁 590 實例:迷你瀏覽器 590 13.4.2 使用WebView加載HTML代碼 591 13.4.3 使用WebView中的JavaScript調用Android方法 592 13.5 使用Web Service進行網絡編程 595 13.5.1 Web Service平臺概述 595 13.5.2 使用Android應用調用Web Service 597 實例:調用基于CXF的Web Service 598 13.6 本章小結 601 第14章 管理Android手機桌面 602 14.1 管理手機桌面 603 14.1.1 刪除桌面組件 603 14.1.2 添加桌面組件 603 14.2 改變手機壁紙 604 14.2.1 開發動態壁紙(Live Wallpapers) 605 實例:蜿蜒壁紙 605 14.3 通過程序添加快捷方式 609 實例:讓程序占領桌面 609 14.4 管理桌面控件 611 14.4.1 開發桌面控件 611 實例:液晶時鐘 614 14.4.2 顯示帶數據集的桌面控件 616 14.5 本章小結 620 第15章 傳感器應用開發 621 15.1 利用Android的傳感器 622 15.2 Android的常用傳感器 624 15.2.1 方向傳感器 624 15.2.2 陀螺儀傳感器 625 15.2.3 磁場傳感器 625 15.2.4 重力傳感器 625 15.2.5 線性加速度傳感器 626 15.2.6 溫度傳感器 626 15.2.7 光傳感器 626 15.2.8 壓力傳感器 626 15.2.9 Android 5.0新增的心率傳感器 629 15.3 傳感器應用案例 630 實例:指南針 630 實例:水平儀 631 15.4 本章小結 636 第16章 GPS應用開發 637 16.1 支持GPS的核心API 638 16.2 獲取LocationProvider 640 16.2.1 獲取所有可用的LocationProvider 640 16.2.2 通過名稱獲得指定LocationProvider 641 16.2.3 根據Criteria獲得LocationProvider 641 16.3 獲取定位信息 642 16.3.1 通過模擬器發送GPS信息 642 16.3.2 獲取定位數據 642 16.4 臨近警告 644 16.5 本章小結 646 第17章 整合高德Map服務 647 17.1 調用高德Map服務 648 17.1.1 獲取Map API Key 648 17.1.2 高德地圖入門 650 17.2 根據GPS信息在地圖上定位 654 17.3 執行定位 660 17.3.1 地址解析與反向地址解析 660 17.3.2 執行定位 662 17.4 GPS導航 665 17.5 本章小結 669 第18章 合金彈頭 670 18.1 合金彈頭游戲簡介 671 18.2 開發游戲界面組件 671 18.2.1 游戲界面分析 671 18.2.2 實現“怪物”類 672 18.2.3 實現怪物管理類 679 18.2.4 實現“子彈”類 683 18.2.5 實現“角色”類 686 18.3 實現繪圖工具類 691 18.4 加載、管理游戲圖片 696 18.5 實現游戲界面 699 18.5.1 實現游戲Activity 699 18.5.2 實現主視圖 700 18.6 本章小結 710 第19章 電子拍賣系統 711 19.1 系統功能簡介和架構設計 712 19.1.1 系統功能簡介 712 19.1.2 系統架構設計 713 19.2 JSON簡介 714 19.2.1 使用JSON語法創建對象 715 19.2.2 使用JSON語法創建數組 716 19.2.3 Java的JSON支持 717 19.3 發送請求的工具類 717 19.4 用戶登錄 719 19.4.1 處理登錄的Servlet 719 19.4.2 用戶登錄客戶端 720 19.5 查看流拍物品 728 19.5.1 查看流拍物品的Servlet 728 19.5.2 查看流拍物品客戶端 729 19.6 管理物品種類 734 19.6.1 瀏覽物品種類的Servlet 734 19.6.2 查看物品種類 735 19.6.3 添加種類的Servlet 740 19.6.4 添加物品種類 740 19.7 管理拍賣物品 742 19.7.1 查看自己的拍賣物品的Servlet 743 19.7.2 查看自己的拍賣物品 743 19.7.3 添加拍賣物品的Servlet 747 19.7.4 添加拍賣物品 748 19.8 參與競拍 753 19.8.1 選擇物品種類 754 19.8.2 根據種類瀏覽物品的Servlet 755 19.8.3 根據種類瀏覽物品 756 19.8.4 參與競價的Servlet 758 19.8.5 參與競價 758 19.9 權限控制 763 19.10 本章小結 765 |
序: |