內容簡介
《Android開發實例大全(第2版)》以
Android應用程式的開發為主題,結合真實的案例向讀者詳細介紹了Android基本組件的使用及應用程式開發的整個流程。《Android開發實例大全(第2版)》的講述由淺入深,實例全面且典型,幾乎囊括了所有和Android套用相關的項目。全書分為18章,分別講解了UI布局實例集錦、控制項實例集錦、自動化服務實例集錦、數據存儲實例集錦、電話和簡訊實例集錦、圖形圖像實例集錦、和網路有關的實例集錦、多媒體實例集錦、Google地圖實例集錦、Google API實例集錦、平板套用實例集錦、遊戲套用與程式最佳化,最後通過4個大型綜合實例,分別介紹了開發手機地圖系統、音樂播放器系統、NBA激情投籃遊戲、綜合郵件系統的基本過程。
《Android開發實例大全(第2版)》基礎翔實,實例豐富、真實,適合Android程式開發的不同用戶,既可以作為初學者的參考資料,也可以作為向此領域發展的程式設計師的參考書。
內容提要
《Android開發實例大全(第2版)》以Android應用程式的開發為主題,結合真實的案例向讀者詳細介紹了Android基本組件的使用及應用程式開發的整個流程。《Android開發實例大全(第2版)》的講述由淺入深,實例全面且典型,幾乎囊括了所有和Android套用相關的項目。全書分為18章,分別講解了UI布局實例集錦、控制項實例集錦、自動化服務實例集錦、數據存儲實例集錦、電話和簡訊實例集錦、圖形圖像實例集錦、和網路有關的實例集錦、多媒體實例集錦、Google地圖實例集錦、Google API實例集錦、平板套用實例集錦、遊戲套用與程式最佳化,最後通過4個大型綜合實例,分別介紹了開發手機地圖系統、音樂播放器系統、NBA激情投籃遊戲、綜合郵件系統的基本過程。
《Android開發實例大全(第2版)》基礎翔實,實例豐富、真實,適合Android程式開發的不同用戶,既可以作為初學者的參考資料,也可以作為向此領域發展的程式設計師的參考書。
目錄
第1章 UI布局實例集錦 1
實例001:使用線性布局(LinearLayout)來布局螢幕 1
實例002:使用相對布局(RelativeLayout)來布局螢幕 3
實例003:使用表格布局(TableLayout)來布局螢幕 5
實例004:使用絕對布局(AbsoluteLayout)來布局螢幕 6
實例005:使用標籤布局(TabLayout)來布局螢幕 7
實例006:使用層布局(FrameLayout) 9
實例007:創建一個桌面組件Widget 10
實例008:在螢幕中實現一個按鈕效果 11
實例009:在螢幕中顯示文字 12
實例010:在螢幕中顯示編輯框 15
實例011:在螢幕中顯示複選框 17
實例012:在螢幕中顯示單選框 19
實例013:在螢幕中顯示下拉列表框 20
實例014:在螢幕中實現自動輸入文本效果 23
實例015:使用日期選擇器控制項DatePicker 26
實例016:自動選擇一個輸入時間 27
實例017:實現螢幕自動滾動 29
實例018:實現一個進度條效果 29
實例019:開發一個評分程式 31
實例020:在螢幕中顯示一幅指定的圖片 33
實例021:設定一幅圖片作為按鈕來使用 34
實例023:實現書架展示排列布局效果 38
實例024:實現樹形選單布局效果 40
第2章 控制項實例集錦 42
實例025:顯示在文本框中輸入的信息 42
實例026:使用RadioGroup控制項實現選項選擇功能 44
實例027:使用CheckBox控制項實現同意條款效果 45
實例028:使用Spinner控制項實現選項選擇 48
實例029:使用Gallery控制項實現個人相簿功能 51
實例030:開發一個檔案搜尋程式 54
實例031:單擊按鈕後實現按鈕置換 56
實例032:模擬實現一個時鐘界面效果 58
實例033:聯合使用DatePicker和TimePicker來選擇日期和時間 60
實例034:動態分隔手機螢幕 62
實例035:使用ListActivity實現動態選單列表 65
實例036:載入手機磁碟中的檔案 67
實例037:實現抽屜樣式效果 69
實例038:在螢幕中動態顯示多種對話框 74
實例039:手機秘書——重要事情提醒 79
實例040:動態添加或刪除選單 85
實例041:自定義Android控制項實現單選按鈕 89
實例042:使用自定義控制項在螢幕中繪製一條虛線 93
實例043:在螢幕中實現手風琴效果 94
實例044:在螢幕中實現有秒針的時鐘 96
實例045:修飾螢幕中的Button按鈕 98
實例046:在螢幕中實現定時器效果 99
實例047:設定螢幕中控制項的樣式 101
第3章 自動化服務實例集錦 102
實例049:自動獲取手機電池的剩餘電量 105
實例050:來電時自動傳送信息提醒 107
實例051:獲取手機存儲卡的容量 111
實例052:操作存儲卡和記憶體卡中的數據 114
實例053:設定鬧鐘 120
實例054:實現黑名單來電自動靜音處理 126
實例055:設定一個自動開機界面 128
實例056:更換手機螢幕背景圖片系統 130
實例057:設定自動更換手機桌面背景 133
實例058:自動控制後台系統服務 143
實例059:在螢幕中拖動一個按鈕 145
實例060:啟動和關閉AlarmManager服務 149
實例061:自動攔截黑名單 151
第4章 數據存儲實例集錦 155
實例062:在螢幕中顯示SharedPreferences中存儲的信息 155
實例063:演示數據添加、刪除等操作 156
實例064:編寫一個手機日記本程式 161
實例065:使用ContentProvider開發一個手機日記本 167
實例066:使用檔案保存數據 177
實例067:將網上的圖片保存到SD卡並在手機中顯示出來 179
實例068:保存聯繫人信息 182
實例069:使用檔案方式保存信息 184
實例070:讀取上次開機時保存的信息 186
第5章 電話和簡訊實例集錦 188
實例071:編寫一個撥號程式 188
實例072:傳送一條簡訊 190
實例073:單擊按鈕實現撥號功能 192
實例074:一個通用發簡訊程式 195
實例075:收到簡訊後用E-mail郵件進行通知 199
實例076:實現觸屏撥號功能 202
實例077:一個簡訊群發程式 204
實例078:來電後自動傳送郵件通知 206
實例079:監聽手機撥接狀態 208
實例080:檢查簡訊是否傳送成功 211
第6章 圖形圖像實例集錦 215
實例081:在螢幕中繪製一個矩形 215
實例082:在螢幕中繪製一個畫布 218
實例083:實現水紋的透明效果 220
實例084:渲染幾何圖形 223
實例085:用圖片為背景實現動畫效果 226
實例086:在手機螢幕中實現Frame動畫效果 228
實例087:對圖片進行縮放處理 230
實例088:旋轉螢幕中的圖片 233
實例089:實現旗幟飛揚的效果 236
實例090:模擬構建一個3D場景效果 240
實例091:模擬實現粒子系統效果 243
實例092:在Canvas中寫文字 246
實例093:移動螢幕中的圖片 253
實例094:在螢幕中繪製一個三維圓柱體 256
實例095:獲取並顯示圖片的寬和高 264
實例096:編寫一個手機屏保程式 266
實例097:以觸摸方式移動圖片 273
實例098:顯示存儲卡中的圖片信息 276
實例099:在手機螢幕中顯示系統內的圖片信息 278
第7章 和網路有關的實例集錦 281
實例100:傳遞HTTP參數 281
實例101:在螢幕中使用HTML程式 284
實例102:在手機中瀏覽網頁 285
實例103:使用內置瀏覽器打開網頁 286
實例104:顯示QQ空間中的照片 288
實例105:通過RSS系統線上瀏覽新聞 290
實例106:下載網路圖片作為手機背景 300
實例107:將檔案上傳至伺服器 302
實例108:開發一個移動部落格發布器 305
實例109:遠程下載並安裝一個軟體 309
實例110:控制藍牙系統 313
實例111:解析並生成XML檔案 321
實例112:獲取某個指定網頁的HTML源碼 322
實例113:使用PULL解析XML數據 324
實例114:採用POST方式向伺服器傳遞數據 327
第8章 多媒體實例集錦 330
實例115:播放一個指定的MP3檔案 330
實例116:調節手機音量的大小 333
實例117:實現相機預覽和拍照功能 336
實例118:在手機中播放影片 342
實例119:手機錄音系統 345
實例120:設定手機中的鈴聲 350
實例121:線上播放網路中的MP3 353
實例122:線上下載音樂作為手機鈴聲 359
實例123:播放GIF格式的動畫 365
實例124:在手機中播放MP4視頻 370
實例125:線上看3GP視頻 373
第9章 Google地圖實例集錦 381
實例126:定位當前位置的坐標 381
實例127:在手機中使用Google地圖 384
實例128:在地圖中定位輸入的坐標 389
實例129:在地圖中快速查詢某個位置 392
實例130:隨著手機的移動自動更新位置 394
實例131:在手機地圖中描繪線路並計算線路距離 398
實例132:在Google地圖中顯示指定的位置 404
實例133:在手機地圖中查詢一個地址 406
實例134:在手機中實現地址查詢 407
實例135:開發一個路徑導航系統 411
第10章 Google API實例集錦 418
實例136:模擬驗證官方賬號 418
實例137:在手機中開發一個Google搜尋程式 424
實例138:在手機中編寫一個翻譯軟體 429
實例139:生成一個二維碼 431
實例140:使用Google Chart API生成二維碼 434
第11章 平板套用 439
實例141:開發一個音樂播放器 439
實例142:開發一個線上天氣播報系統 445
實例143:開發一個網頁瀏覽程式 454
實例144:使用檔案來保存音樂狀態 459
實例145:在螢幕中顯示不同的進度條效果 462
實例146:勇敢派遞員遊戲 465
第12章 遊戲套用 467
實例147:一個簡單的貪吃蛇遊戲 467
實例148:開發一個魔塔遊戲 472
實例149:瘋狂足球遊戲 491
實例150:21點遊戲 512
實例151:俄羅斯方塊遊戲 515
第13章 Android程式最佳化 519
實例152:測試計算機的性能 519
實例153:測試記憶體性能 521
實例154:最佳化Android模擬器 524
實例155:使用merge標籤最佳化UI界面 527
實例156:最佳化Android Layout 529
實例157:最佳化Bitmap圖片 531
實例158:使用SensorSimulator感測器 533
實例159:使用磁場感測器 537
實例160:使用加速度感測器 538
實例161:使用姿態感測器 540
實例162:使用溫度感測器 543
第15章 綜合實例——手機地圖系統 546
實例163:使用Google地圖開發一個綜合地圖系統 546
15.1 項目分析 546
15.1.1 規劃UI界面 546
15.1.2 數據存儲設計 547
15.2 具體實現 548
15.2.1 新建工程 548
15.2.2 主界面 548
15.2.3 新建界面 550
15.2.4 設定界面 552
15.2.5 幫助界面 557
15.2.6 地圖界面 559
15.2.7 數據存取 569
15.2.8 實現Service服務 574
15.3 發布自己的作品來贏利 576
15.3.1 申請成為會員 576
15.3.2 生成簽名檔案 578
15.3.3 使用簽名檔案 583
15.3.4 發布 585
第16章 綜合實例——音樂播放器系統 586
實例164:開發一個音樂播放器 586
16.1 項目介紹 586
16.1.1 項目背景介紹 586
16.1.2 項目目的 587
16.1.3 對讀者的意義 587
16.2 需求分析 587
16.2.1 構成模組 587
16.2.2 功能結構圖 590
16.2.3 系統功能說明 591
16.2.4 總體目標 591
16.3 設計資料庫 592
16.3.1 欄位設計 592
16.3.2 資料庫連線 592
16.3.3 創建資料庫 593
16.3.4 運算元據庫 594
16.3.5 數據顯示 595
16.4 具體編碼 595
16.4.1 服務信息主界面 595
16.4.2 播放器主界面 597
16.4.3 播放列表功能 606
16.4.4 選單功能模組 609
16.4.5 播放設定界面 611
16.4.6 設定顯示歌詞 614
16.4.7 檔案瀏覽器模組 616
第17章 體育類遊戲——NBA激情投籃 620
實例165:NBA激情投籃 620
17.1 項目介紹 620
17.1.1 意義和技術分析 620
17.1.2 策劃遊戲 621
17.1.3 準備工作 621
17.2 項目架構 622
17.2.1 總體架構 622
17.2.2 規劃類 622
17.3 具體編碼 624
17.3.1 編寫主類LanqiuActivity 624
17.3.2 編寫常量類 627
17.3.3 設計遊戲試玩界面 632
17.3.4 繪製遊戲場景 637
第18章 綜合郵件系統 645
實例166:開發一個綜合郵件系統 645
18.1 項目介紹 645
18.1.1 項目背景介紹 645
18.1.2 項目目的 645
18.2 系統需求分析 646
18.2.1 構成模組 646
18.2.2 系統流程 649
18.2.3 功能結構圖 649
18.2.4 系統功能說明 650
18.2.5 系統需求 650
18.3 數據存儲設計 650
18.3.1 用戶信息類 651
18.3.2 SharedPreferences 654
18.4 具體編碼 656
18.4.1 歡迎界面 657
18.4.2 系統主界面 659
18.4.3 信箱類型設定 666
18.4.4 信箱收取設定 669
18.4.5 信箱傳送設定 673
18.4.6 信箱用戶檢查 678
18.4.7 設定用戶別名 682
18.4.8 用戶郵件編輯 685
18.5 總結 691
前言
隨著3G的到來,無線頻寬越來越寬,使得更多內容豐富的應用程式裝入手機成為可能,如視頻通話、視頻點播、移動網際網路衝浪和內容分享等。為了承載這些數據套用及快速部署,手機功能將會越來越智慧型,越來越開放。為了實現這些需求,必須有一個好的開發平台來支持,在此由Google公司發起的OHA聯盟走在了業界的前列,2007年11月推出了開放的Android平台,任何公司及個人都可以免費獲取原始碼及開發SDK。由於其開放性和優異性,Android平台得到了業界的廣泛支持,其中包括各大手機廠商和著名的移動運營商等。繼2008年9月第一款基於Android平台的手機G1發布之後,三星、摩托羅拉、索愛、LG等主流手機製造商都推出了自己的Android平台手機。在2011年底,Android超越了塞班和iOS,雄踞智慧型手機市場占有率榜首的位置。
畢竟Android平台被推出的時間才短短7年,了解Android平台軟體開發技術的程式設計師還不多,如何迅速地推廣和普及Android平台軟體開發技術,讓越來越多的人參與到Android套用的開發中,是整個產業鏈都在關注的一個話題。為了幫助開發者更快地進入Android開發行列,筆者特意精心編寫了本書。本書以Android應用程式的開發為主題,並結合真實的案例向讀者詳細介紹了Android基本組件的使用及應用程式開發的整個流程。本書的講述由淺入深,實例全面且典型,幾乎囊括了所有和Android套用相關的項目。
從技術角度而言,Android是一種融入了全部Web套用的平台。隨著版本的更新,從最初的觸屏到現在的多點觸控,從普通的聯繫人到現在的數據同步,從簡單的Google Map到現在的導航系統,從基本的網頁瀏覽到現在的HTML 5,這都說明Android已經逐漸穩定,而且功能越來越強大。此外,Android平台不僅支持Java、C、C++等主流的程式語言,還支持Ruby、Python等腳本語言,Google甚至專為Android套用開發推出了Simple語言,這使得Android有著非常廣泛的開發群體。
本書的內容
在本書的內容中,以成稿時最新的Android 4.4平台為基礎,按不同的門類開發了166個實例,其中包含4個大型、完整的案例,主要內容如下。
參與本書編寫的人員有:王東華、王振麗、熊斌、朱桂英、周秀、鄧才兵、羅紅仙、王石磊、孫宇、程娟、王文忠、王夢、陳強、于洋、管西京。本團隊由於水平所限,書中難免有不足之處。如有紕漏和不盡如人意之處,誠請讀者提出意見或建議,以便修訂並使之更臻完善。
編著者
2014年7月