59
Chapter 2 建建 BMI 建建建建

Chapter 2 建構BMI 範例程式

  • Upload
    whitley

  • View
    51

  • Download
    0

Embed Size (px)

DESCRIPTION

Chapter 2 建構BMI 範例程式. 大綱. 建構 BMI 範例程式 建立新專案 UI 設計:相關工具、 LinearLayout 、 TextView 、 EditText 、 Button UI 資源統整及優化: string.xml 、 style.xml 等 進入 BMI 程式前: Activity 介紹、 AndroidManifest 相關參數介紹 BMI 程式:連結 UI 與控制 程式結構優化 Debug 版面配置介紹. 建立 BMI 新專案. BMI 程式畫面. 建立 BMI 專案. 建立 BMI 專案. 建立 BMI 專案. - PowerPoint PPT Presentation

Citation preview

Page 1: Chapter 2  建構BMI 範例程式

Chapter 2 建構 BMI 範例程式

Page 2: Chapter 2  建構BMI 範例程式

大綱

建構 BMI 範例程式建立新專案UI 設計:相關工

具、 LinearLayout 、 TextView 、 EditText 、 Button

UI 資源統整及優化: string.xml 、 style.xml 等進入 BMI 程式前: Activity 介紹、 AndroidManifest

相關參數介紹BMI 程式:連結 UI 與控制程式結構優化Debug

版面配置介紹

Page 3: Chapter 2  建構BMI 範例程式

建立 BMI 新專案

Page 4: Chapter 2  建構BMI 範例程式

BMI 程式畫面

Page 5: Chapter 2  建構BMI 範例程式

建立 BMI 專案

Page 6: Chapter 2  建構BMI 範例程式

建立 BMI 專案

Page 7: Chapter 2  建構BMI 範例程式

建立 BMI 專案

Page 8: Chapter 2  建構BMI 範例程式

BMI UI 設計

Page 9: Chapter 2  建構BMI 範例程式

UI 設計 – Graphical Layout

Page 10: Chapter 2  建構BMI 範例程式

UI 設計 – Graphical Layout

若畫面有問題,至Window > Preferences > General > Editors > restore defaults

Page 11: Chapter 2  建構BMI 範例程式

UI 設計 – XML

Page 12: Chapter 2  建構BMI 範例程式

BMI UI 分析

線性排版LinearLayout

項目、結果、建議TextView

輸入框EditText

按鈕Button

Page 13: Chapter 2  建構BMI 範例程式

請完成以下版面

Page 14: Chapter 2  建構BMI 範例程式

View 常用屬性

所有元件都是繼承 View

idex : @+id/test

width 、 heightfill_parent

wrap_content

長度單位 (px 、 dip)

paddingpadding 、 paddingLeft 、 paddingTop 、 paddingRight 、

paddingBottom

Page 15: Chapter 2  建構BMI 範例程式

View 常用屬性

layout_marginlayout_marginLeft 、 layout_marginTop 、 layout_marginRig

ht 、 layout_marginBottom

visibilityvisible 、 invidible 、 gone

background資源 id (ex : @color/red) 、 RGB 、 ARGB

layout_gravityleft 、 right 、 top 、 bottom 、 center 、

center_vertical 、 center_horizontal

Page 16: Chapter 2  建構BMI 範例程式

LinearLayout 線性排版

orientationvertical 、 horizontal

gravityleft 、 right 、 top 、 bottom 、 center 、 center_vertical 、

center_horizontal

Page 17: Chapter 2  建構BMI 範例程式

TextView

text

資源 id (ex : @string/test) 、文字

textSize

px 、 sp

textColor

資源 id (ex : @color/red) 、 RGB 、 ARGB

textStyle

normal 、 bold 、 italic

gravity

singleLine

ellipsize

none 、 start 、 middle 、 end 、 marquee

marqueeRepeatLimit

Page 18: Chapter 2  建構BMI 範例程式

EditText

extends TextView

hint資源 id (ex : @string/test) 、文字

textColorHint資源 id (ex : @color/red) 、 RGB 、 ARGB

inputTypetext( 任何字元 ), textMultiLine, textEmailAddress, textPassword…

Page 19: Chapter 2  建構BMI 範例程式

Button

extends TextView

Page 20: Chapter 2  建構BMI 範例程式

請完成以下版面

Page 21: Chapter 2  建構BMI 範例程式

BMI UI 資源統整及優化

Page 22: Chapter 2  建構BMI 範例程式

UI 資源統整及優化

字串strings.xml

顏色colors.xml

樣式styles.xml

自訂 xml

Page 23: Chapter 2  建構BMI 範例程式

抽離字串 strings.xml

@string/ 字串名稱

Page 24: Chapter 2  建構BMI 範例程式

抽離顏色

@colors/ 顏色名稱

Page 25: Chapter 2  建構BMI 範例程式

抽離樣式

@style/ 樣式名稱

Page 26: Chapter 2  建構BMI 範例程式

自訂 xml

BMI 建議

Page 27: Chapter 2  建構BMI 範例程式

BMI UI

Page 28: Chapter 2  建構BMI 範例程式

進入 BMI 程式前

Page 29: Chapter 2  建構BMI 範例程式

AndroidManifest

Page 30: Chapter 2  建構BMI 範例程式

AndroidManifest

Page 31: Chapter 2  建構BMI 範例程式

AndroidManifest

package nameAPP 主要識別

versionCode整數,為主要版本編號識別,不會於 APP 介紹頁顯示

versionName字串,為版本名稱,於 APP 介紹頁顯示

Page 32: Chapter 2  建構BMI 範例程式

AndroidManifest

使用者最低版本需求, 10 為 android 2.3.3

APP 定義標籤,主要結構包括 Activity 、 Service等需定義在此標籤內

iconAPP 主要 icon

labelAPP 主要顯示名稱

Page 33: Chapter 2  建構BMI 範例程式

AndroidManifest

Activity 定義標籤,即 APP 主要畫面,一個標籤代表一個 Activity ,沒有在 application 標籤中定義的Activity 將無法呼叫

nameActivity 名稱,為路徑描述,若是在 APP packget name 的 package

中,可以用 [ .ActivityClassName] 表示,代表 [ package.ActivityClassName ] ,其他 package 則需寫出完整路徑,如 [ com.yzu.test.TestActivity ]

label顯示於 Activity 上方標題列的名稱

Page 34: Chapter 2  建構BMI 範例程式

AndroidManifest

intent-filter 定義 Activity 的性質,包含進入此Activity 的方式以及類別

action為進入點, android.intent.action.MAIN ,表示進入 App 時,

此 Activity 將第一個執行顯示

category類別定義, android.intent.category.LAUNCHER ,表示此

Activity ,將顯示於 Launcher 的應用程式列表中

Page 35: Chapter 2  建構BMI 範例程式

Activity

具有生命週期代表 APP 主要畫面需在 AndroidManifest.xml 中設置

Page 36: Chapter 2  建構BMI 範例程式

Activity

package 資料夾位置

匯入相關的 Class

程式主體,代表 [ 宣告一個公開的BMIActivity 類別,此類別繼承 Activity 類別 ]

Page 37: Chapter 2  建構BMI 範例程式

Activity

onCreate 為 Activity 啟動初始化時第一個執行的Method ,即 Activity 生命週期的起始點,而為了建立此 APP 專用的 Activity ,因此覆寫繼承自 Activity 類別的 onCreate ,

@Override表示此 Method 複寫父類別的 Method

Bundle savedInstanceState當 APP 啟動、背景等待或關閉等狀態改變時,皆需要傳遞此參數,

以維持 APP 運作,一般不需要任何改變

Page 38: Chapter 2  建構BMI 範例程式

Activity

super 為關鍵字,代表此類別的父類別 Activity ,因此這句的意思為執行父類別的 onCreate ,一般M ethod 覆寫後將忽略原本父類別 Method 中的內容,但是在父類別 Activity onCreate 中會呼叫所有 Activity 執行所需的 Method ,故在此需要先呼叫父類別的 onCreate Method ,再繼續加入需要的內容

Page 39: Chapter 2  建構BMI 範例程式

Activity

執行 setContentView 設定 Activity 畫面,在此為引入R .layout.main 設定檔,以此設定檔內容繪製 Activity 畫面,並與此 layout 連結

Page 40: Chapter 2  建構BMI 範例程式

Activity 生命週期

Activity

http://developer.android.com/reference/android/app/Activity.html

Page 41: Chapter 2  建構BMI 範例程式

了解 Activity 生命週期運作

覆寫生命週期中的 Method 並以 Log 追蹤android.util.Log

Log.v(Tag,Mes)

verbose 黑色,以 verbose 為條件過濾時任何消息都會輸出Log.d(Tag,Mes)

debug 藍色,以 debug 為條件過濾時 d 、 i 、 w 、 e 都會輸出

Log.i(Tag,Mes)

info 綠色,以 debug 為條件過濾時 i 、 w 、 e 都會輸出Log.w(Tag,Mes)

warning 橘色,以 debug 為條件過濾時 w 、 e 都會輸出Log.e(Tag,Mes)

error 紅色

Page 42: Chapter 2  建構BMI 範例程式

BMI 程式設計

Page 43: Chapter 2  建構BMI 範例程式

識別 Layout 中的元件

將要控制的元件加上 idandroid:id = ” @+id/ 名稱 ”

android:id="@+id/ET_Height“

android:id="@+id/ET_Weight”

android:id="@+id/B_Count”

android:id="@+id/TV_Result“

android:id="@+id/TV_Advice"

Page 44: Chapter 2  建構BMI 範例程式

程式撰寫

Page 45: Chapter 2  建構BMI 範例程式

執行結果

Page 46: Chapter 2  建構BMI 範例程式

BMI 程式結構優化

Page 47: Chapter 2  建構BMI 範例程式

BMI 程式結構優化

Page 48: Chapter 2  建構BMI 範例程式

BMI 程式結構優化

Page 49: Chapter 2  建構BMI 範例程式

DDMS 除錯

Page 50: Chapter 2  建構BMI 範例程式

Oops!

Page 51: Chapter 2  建構BMI 範例程式

eclipse 顯示程式碼行數

Windows > Preferences > General > Editors > Text Editors > show line numbers

Page 52: Chapter 2  建構BMI 範例程式

DDMS

Devices

Page 53: Chapter 2  建構BMI 範例程式

Emulator control

DDMS

Page 54: Chapter 2  建構BMI 範例程式

File Explorer

DDMS

Page 55: Chapter 2  建構BMI 範例程式

LogCat

DDMS

Page 56: Chapter 2  建構BMI 範例程式

Heap

DDMS

Page 57: Chapter 2  建構BMI 範例程式

Logcat

Page 58: Chapter 2  建構BMI 範例程式

Find the bug

Page 59: Chapter 2  建構BMI 範例程式

Debug