●章水果配對1
1.1遊戲描述1
1.2界面設計2
1.2.1界面布局2
1.2.2組件屬性設置3
1.2.3上傳資源文件3
1.3編寫程序——屏幕初始化4
1.3.1創建按鈕列表4
1.3.2讓按鈕顯示背面圖案5
1.3.3創建圖片列表7
1.3.4為按鈕指定正面圖案7
1.3.5隨機顯示正面圖案9
1.4編寫程序——處理按鈕點擊事件11
1.4.1流程圖11
1.4.2判斷兩個按鈕圖案的異同12
1.4.3處理兩個按鈕圖案相同的情況13
1.4.4處理兩個按鈕圖案不同的情況14
1.4.5代碼的復用——改進按鈕點擊事件處理程序14
1.4.6代碼的規整16
1.4.7改造閃現計時器的計時事件處理程序17
1.4.8測試17
1.5編寫程序——控制遊戲時長21
1.5.1控制遊戲時長21
1.5.2顯示剩餘時間21
1.5.3將剩餘時間計入總成績22
1.6編寫程序——設計遊戲結尾22
1.6.1顯示遊戲得分22
1.6.2保存遊戲得分24
1.6.3處理對話框的按鈕選擇25
1.6.4創建遊戲初始化過程25
1.7程序的測試與修正26
1.7.1選取列表項錯誤26
1.7.2重新開始遊戲時點擊按鈕無響應29
1.7.3重新開始遊戲時圖案排列不變30
1.7.4快速點擊按鈕時繫統提示錯誤31
1.8代碼整理32
第2章計算器35
2.1功能描述35
2.1.1符號及術語35
2.1.2具體功能36
2.2用戶界面設計36
2.3編寫程序——實現常規操作37
2.3.1輸入數字37
2.3.2點擊算符38
2.3.3點擊等號39
2.3.4代碼測試及說明40
2.4編寫程序——實現連續運算40
2.4.1代碼修改40
2.4.2測試及代碼修正40
2.5編寫程序——實現小數輸入41
2.5.1編寫按鈕點擊程序41
2.5.2代碼測試及程序修正42
2.6編寫程序——實現輔助功能43
2.6.1求相反數43
2.6.2刪除末尾數字43
2.6.3清除後數44
2.6.4清除全部信息44
2.7代碼回顧44
2.7.1要素關繫圖44
2.7.2關鍵環節的狀態分析44
第3章九格拼圖46
3.1遊戲描述46
3.2界面設計47
3.2.1界面布局47
3.2.2資源文件規格48
3.3難點分析49
3.3.1程序的主流程49
3.3.2術語解釋49
3.3.3難點分析51
3.4編寫程序——初始化52
3.4.1初始化全局變量52
3.4.2初始化組件屬性55
3.4.3屏幕初始化事件處理程序55
3.4.4跟蹤程序的執行過程56
3.5編寫程序——移動碎片56
3.6編寫程序——判斷拼圖是否成功59
3.7編寫程序——計算遊戲得分60
3.7.1統計遊戲耗時60
3.7.2統計碎片移動次數60
3.7.3計算遊戲得分60
3.8編寫程序——遊戲結束61
3.8.1提取歷史記錄61
3.8.2更新歷史記錄62
3.8.3處理對話框的完成選擇事件63
3.8.4添加重新開始按鈕64
3.9代碼整理64
3.9.1代碼清單64
3.9.2要素關繫圖65
第4章天氣預報——基礎版67
4.1功能描述67
4.2預備知識68
4.2.1WebAPI簡介68
4.2.2HTTP協議69
4.2.3Web客戶端組件72
4.2.4JSON數據簡介73
4.2.5將JSON數據轉為列表數據74
4.2.6AppInventor處理鍵值對列表75
4.3請求數據76
4.3.1用戶界面設計76
4.3.2請求數據77
4.3.3將數據保存為文件79
4.4數據結構分析80
4.4.1城市信息81
4.4.2七日預報81
4.4.3小時預報82
4.4.4生活指數83
4.4.5天氣實況83
4.4.6數據狀態83
4.4.7數據更新時間84
4.5呈現一組簡單的數據——城市信息84
4.5.1提取分類信息84
4.5.2顯示單項信息85
4.5.3規範信息的顯示格式86
4.6選擇顯示各類信息87
4.6.1基礎數據準備87
4.6.2顯示分類信息90
4.7程序的改進95
4.7.1判斷請求數據的結果95
4.7.2為數據添加單位95
4.7.3顯示當前數據類型96
第5章天氣預報——圖片版98
5.1功能描述98
5.2用戶界面設計98
5.2.1頁面布局98
5.2.2添加並設置組件100
5.3編寫程序——請求並整理數據101
5.3.1請求數據101
5.3.2數據整理102
5.4呈現有圖標的數據——七日天氣預報106
5.4.1設置用戶界面組件的可視屬性106
5.4.2圖標文件的獲取107
5.4.3圖標的呈現107
5.4.4顯示文字信息110
5.5顯示其他種類信息113
5.5.1顯示城市基本信息113
5.5.2顯示生活指數信息114
5.5.3顯示天氣實況信息116
5.5.4顯示小時預報118
5.6其他功能120
5.6.1選擇顯示分類信息121
5.6.2默認設置與數據保存121
5.7功能完善與小結123
5.7.1診斷網絡連接123
5.7.2項目小結123
第6章打地鼠125
6.1遊戲描述125
6.2素材準備126
6.3界面設計126
6.4編寫程序——地鼠的閃現127
6.4.1難點分析128
6.4.2編寫代碼128
6.5編寫程序——命中地鼠與得分131
6.5.1顯示擊打次數131
6.5.2命中地鼠131
6.6編寫程序——時間控制與遊戲結束132
6.6.1顯示遊戲剩餘時間132
6.6.2編寫遊戲結束程序134
6.6.3回應用戶的選擇135
6.7代碼整理136
第7章幼兒加法啟蒙138
7.1功能描述138
7.2素材準備139
7.2.1素材清單139
7.2.2素材規格140
7.3技術要點140
7.3.1用圖片組件顯示數字140
7.3.2用畫布組件繪制圖形140
7.3.3用隨機數合成顏色140
7.3.4用計時器組件控制應用的節奏140
7.4界面設計140
7.5編寫程序——應用初始化143
7.5.1按鈕初始化143
7.5.2動態設置屏幕的標題屬性144
7.5.3動態組件初始化144
7.5.4出題並顯示題目145
7.5.5測試145
7.6編寫程序——題目圖示145
7.6.1畫圓遇到的問題146
7.6.2繪制數量合適的彩色圓形147
7.6.3添加加號147
7.6.4階段測試148
7.7編寫程序——答題148
7.7.1顯示輸入的數值149
7.7.2清除錯誤答案150
7.7.3判斷對錯150
7.7.4顯示下一題151
7.7.5禁用選擇時長功能152
7.7.6隱藏圖示153
7.7.7階段測試153
7.8編寫程序——時間控制及得分153
7.8.1控制練習時長153
7.8.2計算並顯示得分154
7.8.3選擇練習時長154
7.9編寫程序——遊戲結束與重新開始155
7.9.1提取、顯示及保存歷史記錄155
7.9.2處理用戶選擇156
7.9.3最終測試157
7.10代碼整理157
7.10.1代碼清單157
7.10.2要素關繫圖158
第8章簡易家庭賬本——登錄160
8.1概念解釋160
8.1.1什麼是應用160
8.1.2什麼是數據庫161
8.2AppInventor中的數據庫組件163
8.2.1數據的組織163
8.2.2新增數據項(記錄)164
8.2.3數據的查詢165
8.2.4刪除數據項166
8.2.5修改數據項167
8.2.6數據的請求與保存167
8.3家庭賬本應用的功能模塊設置168
8.4登錄頁面的功能描述169
8.4.1預設選項功能169
8.4.2密碼保護功能170
8.5數據模型170
8.5.1對像模型170
8.5.2變量模型171
8.5.3列表的文本表示171
8.5.4登錄頁面的數據模型171
8.5.5界面設計172
8.6頁面邏輯174
8.6.1加載保存預設選174
8.6.2密碼設置174
8.6.3登錄功能174
8.7編寫程序175
8.7.1屏幕初始化175
8.7.2文件管理器收到文本175
8.7.3開始按鈕點擊程序177
8.8測試177
8.9附錄:代碼背包功能簡介178
第9章簡易家庭賬本——導航菜單與收入記錄179
9.1導航菜單屏幕179
9.1.1數據模型179
9.1.2界面設計179
9.1.3頁面邏輯180
9.1.4編寫程序180
9.1.5測試181
9.2收入記錄的功能描述182
9.3收入記錄的數據模型182
9.3.1對像模型182
9.3.2變量模型183
9.3.3預設項列表184
9.4界面設計184
9.5頁面邏輯185
9.6編寫程序187
9.6.1發現過程187
9.6.2屏幕初始化188
9.6.3新增數據189
9.6.4修改數據190
9.6.5刪除數據193
9.6.6永久保存數據193
9.6.7返回主菜單194
9.7測試與改進195
9.8附錄:計時器組件中的時間信息197
9.8.1什麼是時間點197
9.8.2設置日期格式198
9.8.3創建毫秒時間點199
0章簡易家庭賬本——繫統設置200
10.1功能描述200
10.2數據模型201
10.2.1支出二級分類201
10.2.2支出專項202
10.2.3家庭成員與支付方式202
10.2.4重置密碼202
10.3界面設計202
10.3.1頁面布局202
10.3.2組件屬性設置203
10.4界面邏輯204
10.4.1屏幕初始化204
10.4.2設置預設項204
10.4.3重置密碼205
10.4.4恢復默認設置205
10.5編寫程序——選擇設置項205
10.5.1屏幕初始化205
10.5.2設置組件的顯示與隱藏206
10.5.3原始數據的綁定207
10.5.4組件初始化208
10.5.5設置選擇框的完成選擇事件208
10.6設置支出二級分類208
10.6.1選擇支出一級分類208
10.6.2修改二級分類209
10.6.3刪除二級分類210
10.6.4新增二級分類210
10.6.5測試211
10.7設置支出專項212
10.7.1選中某個支出專項213
10.7.2新增與修改213
10.7.3刪除216
10.7.4測試217
10.7.5測試中的問題218
10.8設置家庭成員及支付方式220
10.8.1選擇設置項220
10.8.2新增與修改簡單項220
10.8.3刪除簡單項221
10.8.4測試222
10.9完善新增與修改功能223
10.10其他設置及返回主菜單224
10.10.1密碼重置224
10.10.2恢復默認設置225
10.10.3返回主菜單226
1章簡易家庭賬本——支出記錄227
11.1功能描述227
11.2數據模型228
11.2.1對像模型228
11.2.2變量模型229
11.2.3預設項列表230
11.3界面設計230
11.4界面邏輯231
11.5編寫程序233
11.5.1編寫過程233
11.5.2屏幕初始化236
11.5.3選擇一級分類237
11.5.4新增及修改支出記錄237
11.5.5選擇已輸入項及刪除選中項238
11.5.6輸入信息的永久保存238
11.5.7返回主菜單239
11.6測試與改進239
11.6.1屏幕初始化240
11.6.2新增支出記錄241
11.6.3修改及刪除241
11.6.4保存與返回242
11.6.5改進242
2章簡易家庭賬本——收支查詢244
12.1功能描述244
12.1.1收入查詢244
12.1.2支出查詢245
12.2數據模型245
12.2.1對像模型245
12.2.2動態變量模型246
12.3界面設計247
12.4技術準備——繪制動態表格248
12.4.1表格的屬性249
12.4.2繪制單頁數據表格251
12.4.3繪制多頁表格254
12.4.4選中一行數據257
12.4.5選中行的閃爍效果257
12.4.6顯示頁碼260
12.5界面邏輯261
12.6編寫程序——聲明全局變量並創建過程263
12.6.1名副其實的變量263
12.6.2不變的變量264
12.6.3可以充當變量的過程——有返回值的過程264
12.6.4改變世界的過程——無返回值過程269
12.7編寫程序——事件處理272
12.7.1屏幕初始化272
12.7.2日期選擇事件273
12.7.3篩選條件選擇程序273
12.7.4主篩選項選擇程序274
12.7.5查詢按鈕點擊程序274
12.7.6劃屏翻頁事件274
12.7.7選中單行數據程序275
12.7.8與刪除單行數據相關的程序275
12.7.9數據導出277
12.7.10批量刪除277
12.7.11返回主菜單278
12.8測試與改進278
12.8.1收入查詢測試278
12.8.2支出查詢測試282
12.8.3功能改進——提供操作反饋289
3章簡易家庭賬本——年度收支彙總292
13.1功能描述292
13.2數據模型293
13.2.1表格數據293
13.2.2折線圖數據294
13.2.3全局變量295
13.3技術準備——繪制折線圖296
13.3.1繪制坐標軸297
13.3.2繪制圖例298
13.3.3寫標注文字299
13.3.4繪制折線圖301
13.4用戶界面設計303
13.5頁面邏輯304
13.5.1屏幕初始化304
13.5.2選中彙總項目305
13.5.3數據篩選與彙總305
13.5.4返回主菜單305
13.6編寫程序——創建過程305
13.6.1可以充當變量的過程——有返回值過程305
13.6.2與繪圖相關的過程——無返回值過程308
13.7編寫程序——事件處理程序312
13.7.1屏幕初始化312
13.7.2彙總按鈕點擊程序313
13.7.3彙總項目選擇程序313
13.7.4返回按鈕點擊程序314
13.8測試與改進314
13.8.1測試314
13.8.2改進315
4章簡易家庭賬本——分類彙總及其他318
14.1技術準備——繪制餅狀圖319
14.1.1數據模型319
14.1.2繪圖方法320
14.2年度收入分類彙總324
14.2.1數據模型324
14.2.2頁面邏輯325
14.2.3編寫代碼——過程與事件處理程序325
14.3年度個人收入彙總331
14.4年度支出分類彙總333
14.5年度專項支出彙總336
14.6月度收入、支出分類彙總338
14.7使用手冊341
14.7.1用戶界面設計341
14.7.2編輯並上傳HTML文檔342
14.7.3測試342
14.8開發心得及改進思路343
14.8.1開發心得343
14.8.2改進方法及思路346
5章數學實驗室(一):雞兔同籠350
15.1雞兔同籠解法之一——手動枚舉法350
15.1.1功能說明351
15.1.2用戶界面設計351
15.1.3頁面邏輯353
15.1.4編寫代碼353
15.1.5測試355
15.1.6討論355
15.2雞兔同籠解法之二——程序枚舉法356
6章數學實驗室(二):素數問題358
16.1N是否為素數358
16.1.1最“笨”的算法358
16.1.2算法的改進359
16.2N以內的素數360
16.2.1求N以內的素數360
16.2.2改造“N是素數”過程361
7章數學實驗室(三):公約數與公倍數363
17.1求M與N的優選公約數363
17.1.1概念陳述363
17.1.2概念的數學表示363
17.1.3概念的程序表示364
17.1.4求任意兩個整數的優選公約數365
17.2求M與N的最小公倍數370
17.2.1問題的數學表示370
17.2.2問題的程序表示370
17.3小結372
8章數學實驗室(四):繪制函數曲線373
18.1坐標變換373
18.1.1畫布坐標繫統373
18.1.2平面直角坐標繫375
18.1.3兩個坐標繫之間的坐標變換377
18.2繪制坐標軸377
18.2.1界面設計378
18.2.2編寫代碼379
18.3繪制二次函數曲線382
18.3.1繪制最簡單的二次曲線382
18.3.2繪制任意繫數的二次曲線384
18.3.3連續改變繫數值386
18.4繪制三角函數曲線388
18.4.1坐標軸的位置389
18.4.2編寫過程——繪制正弦函數389
18.5小結391
9章尋找加油站392
19.1概述392
19.1.1功能描述392
19.1.2數據來源393
19.1.3術語393
19.1.4開發步驟393
19.2用戶界面394
19.3應用邏輯設計395
19.4編寫程序:設置地圖尺寸395
19.4.1畫布寬度的計算公式396
19.4.2用代碼實現對畫布寬度的設定396
19.4.3對代碼的解釋397
19.5獲取一張地圖398
19.5.1理解靜態地圖API398
19.5.2編寫代碼400
19.6搜索加油站401
19.6.1理解搜索API401
19.6.2編寫搜索URL401
19.6.3為搜索URL編寫代碼401
19.6.4執行搜索操作401
19.6.5接收服務器返回的信息402
19.6.6為列表選擇框設置可選項404
19.6.7在地圖上顯示選中的加油站405
19.7中心點的定位406
19.7.1GPS定位406
19.7.2地址定位408
19.8顯示全部加油站412
19.8.1為名稱列表添加選項412
19.8.2拼接全部加油站的經緯度字串412
19.9地圖的左右移動414
19.10功能完善及代碼整理414
19.10.1隱藏地址布局414
19.10.2保存當前地址信息414
19.10.3代碼清單415
第20章貪喫蛇416
20.1功能說明416
20.2用戶界面417
20.3繪制背景418
20.3.1畫線與畫方塊418
20.3.2行列與坐標之間的轉換418
20.3.3繪制方塊419
20.3.4繪制背景420
20.4蛇頭的受控移動420
20.4.1描述蛇頭的位置420
20.4.2描述蛇頭的方向420
20.4.3蛇頭的移動421
20.4.4蛇頭的轉向422
20.5果子的生成422
20.6蛇喫果子422
20.6.1記錄蛇身位置423
20.6.2蛇身加長423
20.6.3果子再生與得分增加424
20.7踫壁與自喫425
20.8附屬功能426
20.8.1暫停與繼續426
20.8.2重新開始426
20.8.3防止自毀427
20.8.4出果位置避開蛇身428
20.8.5退出遊戲428
20.9代碼整理428
20.9.1常量428
20.9.2變量429
20.9.3有返回值的過程429
20.9.4無返回值的過程430
20.9.5事件處理程序431
第21章因式分解之十字相乘432
21.1功能說明432
21.1.1名詞解釋432
21.1.2功能描述432
21.2用戶界面433
21.2.1首頁433
21.2.2答題頁434
21.3為首頁編寫程序436
21.3.1屏幕初始化436
21.3.2選擇難度與題量436
21.3.3查看歷史記錄437
21.3.4開始答題及退出437
21.4答題頁頁面邏輯437
21.5答題頁初始化439
21.5.1顯示狀態信息439
21.5.2下拉框數據綁定440
21.5.3草紙提示文字440
21.5.4題目的生成441
21.5.5題目繫數——由數值轉化為文本443
21.5.6形式答案的顯示444
21.5.7題目的顯示444
21.6答題445
21.6.1選擇答案446
21.6.2提交答案447
21.6.3出下一題449
21.6.4可擦寫草紙450
21.7交卷450
21.7.1顯示答題結果451
21.7.2顯示正確答案453
21.7.3保存成績453
21.7.4返回首頁或再來一次455
21.8區分題目難度456
21.9應用功能評估458
21.10代碼整理459
21.10.1全局變量459
21.10.2過程459
21.10.3事件處理程序460
後記461
附錄A開發工具、測試方案與學習資源462
附錄B不同的AppInventor漢化版本468
內容簡介
App Inventor的出現降低了編程門檻,沒有程序設計經驗的編程愛好者可以在短時間內創建出炫目的安卓手機應用。本書帶領讀者通過動手實踐數個編程實例來了解程序開發的邏輯。書中內容共分為21章,包含15個完整的應用,覆蓋了遊戲、教學、工具、信息管理以及網絡應用等。本書不僅詳細介紹了應用開發的步驟和要點,還針對每種應用的特征給出了進一步優化的建議,忠實還原了應用開發過程中遇到的問題和解決方法,是一本的編程技術與理念並重的實踐指南。