590 likes | 714 Views
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 專案.
E N D
大綱 建構BMI 範例程式 建立新專案 UI 設計:相關工具、LinearLayout、TextView、EditText、Button UI資源統整及優化:string.xml、style.xml等 進入BMI程式前:Activity介紹、AndroidManifest 相關參數介紹 BMI程式:連結UI與控制 程式結構優化 Debug 版面配置介紹
UI 設計 – Graphical Layout 若畫面有問題,至Window > Preferences > General > Editors > restore defaults
BMIUI分析 線性排版 LinearLayout 項目、結果、建議 TextView 輸入框 EditText 按鈕 Button
View 常用屬性 所有元件都是繼承View id ex:@+id/test width、height fill_parent wrap_content 長度單位(px、dip) padding padding、paddingLeft、paddingTop 、paddingRight、paddingBottom
View 常用屬性 layout_margin layout_marginLeft、layout_marginTop 、layout_marginRight 、layout_marginBottom visibility visible、invidible、gone background 資源 id (ex:@color/red)、RGB、ARGB layout_gravity left、right、top、bottom、center、 center_vertical、center_horizontal
LinearLayout 線性排版 orientation vertical、horizontal gravity left、right、top、bottom、center、 center_vertical、center_horizontal
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
EditText extends TextView hint 資源 id(ex:@string/test)、文字 textColorHint 資源 id (ex:@color/red)、RGB、ARGB inputType text(任何字元), textMultiLine, textEmailAddress, textPassword…
Button extends TextView
UI資源統整及優化 字串 strings.xml 顏色 colors.xml 樣式 styles.xml 自訂xml
抽離字串strings.xml @string/字串名稱
抽離顏色 @colors/顏色名稱
抽離樣式 @style/樣式名稱
自訂xml BMI 建議
AndroidManifest package name APP主要識別 versionCode 整數,為主要版本編號識別,不會於APP介紹頁顯示 versionName 字串,為版本名稱,於APP介紹頁顯示
AndroidManifest 使用者最低版本需求,10為android 2.3.3 APP定義標籤,主要結構包括Activity、Service等需定義在此標籤內 icon APP主要icon label APP主要顯示名稱
AndroidManifest Activity定義標籤,即APP主要畫面,一個標籤代表一個Activity,沒有在application標籤中定義的Activity將無法呼叫 name Activity名稱,為路徑描述,若是在APPpackget name的package中,可以用 [.ActivityClassName] 表示,代表 [package.ActivityClassName ],其他package則需寫出完整路徑,如 [com.yzu.test.TestActivity] label 顯示於Activity上方標題列的名稱
AndroidManifest intent-filter定義Activity的性質,包含進入此Activity的方式以及類別 action 為進入點,android.intent.action.MAIN,表示進入App時,此Activity將第一個執行顯示 category 類別定義,android.intent.category.LAUNCHER,表示此Activity,將顯示於Launcher的應用程式列表中
Activity 具有生命週期 代表APP主要畫面 需在AndroidManifest.xml中設置
Activity package資料夾位置 匯入相關的Class 程式主體,代表 [ 宣告一個公開的BMIActivity類別,此類別繼承Activity類別 ]
Activity onCreate為Activity啟動初始化時第一個執行的Method,即Activity生命週期的起始點,而為了建立此APP專用的Activity,因此覆寫繼承自Activity類別的onCreate, @Override 表示此Method複寫父類別的Method Bundle savedInstanceState 當APP啟動、背景等待或關閉等狀態改變時,皆需要傳遞此參數,以維持APP運作,一般不需要任何改變
Activity super為關鍵字,代表此類別的父類別Activity,因此這句的意思為執行父類別的onCreate,一般Method覆寫後將忽略原本父類別Method中的內容,但是在父類別ActivityonCreate中會呼叫所有Activity執行所需的Method,故在此需要先呼叫父類別的onCreateMethod,再繼續加入需要的內容
Activity 執行setContentView設定Activity畫面,在此為引入R.layout.main設定檔,以此設定檔內容繪製Activity畫面,並與此layout連結
Activity生命週期 Activity http://developer.android.com/reference/android/app/Activity.html
了解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紅色
識別Layout中的元件 將要控制的元件加上id android: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"