Android Studio 程式設計基礎 靜宜大學資管系 楊子青
Android App 四種型態 Activity (活動):本課程重點 Service (背景服務) 可在背景不斷的工作,直到停止或是系統無法提供資源為止。通常運用在後台播放音樂、定時檢查更新資料,或是執行很久的工作,例如上傳及下載檔案 Content Provider (內容提供者) 管理中央資料存放庫的存取權,供其他應用程式使用,例如拍照存檔的照片可在FB分享 Broadcast Receiver (廣播接收端) 處理系統送來的通知,例如電力不足、螢幕關閉
1. Android App 的主角:Activity
視覺設計 + 程式邏輯
視覺設計 + 程式邏輯
Build視覺設計與程式碼 自動
2. Activity的基本程式邏輯
建立一專案 TextExample 選擇 Empty activity,填入自己的Package name
onCreate(): MainActivity第一件要做的事 此專案之套件Package 呼叫父類別進行初始設定 載入畫面Layout
資源的 ID 10
R.Java (編譯器自動生成之R類別,內含所有資源的ID) 先執行程式 Run → Run ‘App’ 左上角樹狀結構App 按滑鼠右鍵 → Show in Explore app/build/generated/not_namespaced_r_class_sources/developDebug/processDevelopDebugResources/r/your/project/package/R.java
在R.java,查詢activity_main
Layout: activity_main.xml
3. 基本元件 ConstraintLayout TextView 元件: 之前的版面設計,主要是使用LinearLayout或RelativeLayout,缺點是Layout層級太多,造成設計更動上的困難,也較耗資源 為了將Layout扁平化,Android 2.3 (API level 9)開始支援ConstraintLayout (類似iOS的AutoLayout) TextView 元件: 用來顯示一段文字,可稱為『文字標籤』 預設顯示 “Hello world!" 字串。
先改成LinearLayout 先將android.support.constraint.ConstraintLayout選起來,輸入L,選擇LinearLayout
改成LinearLayout (垂直) 按Design (以畫面顯示)
元件的佈局與屬性設定
常見的屬性類型
TextView元件:設定TextSize屬性 sp (scale-independent pixels):可隨顯示/字型大小,調整大小。例如手機可設定小、適中、大、超大等字型,用sp會自動調整大小。通常用於設定字型大小。 dp (density-independent pixels):在不同的解析度/不同尺寸螢幕,同一dp大小相當。通常用於設定元件大小。1dp=1/160inch。
values資源的strings.xml
於strings.xml自行定義一個message字串
建立一個EditText元件(可讓使用者 輸入文字內容)
設定EditText元件的text屬性為@string/message (對應到strings.xml的message字串)
優點:易於維護及多國語言
翻譯為多國語言→在行動裝置 執行,並切換不同語言環境
4. Button元件
findViewById() 方法
新增Button元件及設定屬性
MainActivity.java程式碼 public class MainActivity extends AppCompatActivity { int size=30; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void bigger(View v){ TextView txv = (TextView) findViewById(R.id.txv); size++; txv.setTextSize(size);
執行結果
如果字體小於40,才可變大 public void bigger(View v){ TextView txv = (TextView) findViewById(R.id.txv); if (size<40){ size++; txv.setTextSize(size); } 自行練習:設定一個縮小字體的按鈕,呼叫smaller事件,如果字體超過30可變小
用程式更改按鈕的Clickable屬性 public void bigger(View v){ TextView txv = (TextView) findViewById(R.id.txv); if (size<40){ size++; txv.setTextSize(size); } else{ Button btn = (Button) findViewById(R.id.button); btn.setClickable(false);
用程式更改按鈕顯示與否屬性 可見 不可見 (但是還是佔畫面位置) 隱藏 setVisibility(View.VISIBLE) setVisibility(View.INVISIBLE) 隱藏 setVisibility(View.GONE)
5. EditText (文字輸入) 元件 getText():取得使用者輸入的文字 setText():設定 TextView 顯示的文字
增加「輸入完畢」Button
Hi方法程式碼 public void Hi(View v){ EditText edt = (EditText) findViewById(R.id.editText); TextView txv = (TextView) findViewById(R.id.txv); txv.setText(edt.getText() + ",歡迎您使用本App!"); }
執行結果
參考資料 施威銘主編,Android App程式設計教本之無痛起步 - 使用Android Studio開發環境,旗標出版社,2015年。