小豬的Android入門之路 Day 2,androidday
小豬的Android入門之路 Day 2
Android介面開發初體驗
本節引言:
在上一節中我們對android的系統特性與平台架構進行了初步的瞭解;
學會了使用Eclipse或者Android studio搭建安卓的開發環境;熟悉了對應IDE開發流程;
以及對應的工程目錄;瞭解了一些相關的名詞,aapt,dx等;命令列常用的一些adb指令;
APP的打包,編譯,以及啟動並執行流程!在本節中我們將會對android介面的開發進行初體驗!
學習六大布局方式,對android四大組件進行初步的瞭解,以及App的生命週期,構建一個電話撥號器等!
廢話不多說!
本文:
本節學習路線圖:
學習路線解析:
①瞭解下android的四大組件和Intent分別是什麼,拿來做什麼的!在後續章節會詳細解析
②瞭解下app的生命週期:五個狀態
③深入解析HelloWorld的工程目錄
④熟悉六大布局方式
⑤熟悉三種提示方式:狀態列,對話方塊與Toast
⑥電話撥號器的完整實現
⑦9patch(9妹)的使用:製作可伸縮的圖片!
android四大組件與Intent初析:
應用程式(App)的生命週期:
注意:
與其他的智能手機作業系統不同:app的生命週期(存活時間)不是由進程自己控制的;
而是由android系統決定的;而影響的主要因素:該進程對於使用者的重要性,以及當前系統中所剩
可用記憶體空間;當可用記憶體不足時,系統會終止某些進程以便回收記憶體資源!
進程層級圖:
深入瞭解App的工程目錄:1.資源的引用:
2.工程目錄下的詳細代碼的解析:
三個重要檔案:傳送門
使用者介面開發初體驗:
在建立我們的介面前,我們先要瞭解一些東西:
1.view類:是所有可視化控制項的父類,提供組件描繪和時間處理方法
2.viewGroup類:可以擁有子控制項,可以看作是容器
3.通常可見的android app都是由可視化控制項 + 布局組成的!控制項的屬性可以在
xml中靜態設定或者在Java代碼中動態設定
好了,接著就要開始建立我們電話撥號器的布局了:
這裡有兩種方式:①拖拉組件②自己寫代碼
筆者還是比較傾向於後者,因為拖拉產生的程式碼有一定的冗餘
代碼如下:
main.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/LinearLayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MyActivity" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/input_num" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/editnum"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/btn_call" android:id="@+id/btncall"/></LinearLayout>
代碼解析:
就是定義了一個LinearLayout(線性布局方式)並且把排列方向設定為豎直,即一行放置一個組件;
接著依次定義了TextView(文字標籤),EditText(輸入框),Button(按鈕),很簡單
Android的六大布局
LinearLayout:線性布局
連結:android---LinearLayout(線性布局)詳解
RelativeLayout:相對布局
連結:android---RelativeLayout(相對布局)詳解
FrameLayout:幀布局
連結:android---FrameLayout(幀布局)詳解
TableLayout:表格布局
連結:android---TableLayout(表格布局)詳解
AbsoluteLayout:絕對布局
連結:android---AbsoluteLayout(絕對布局)詳解
GridLayout:網格布局
連結:android---GridLayout(網格布局)詳解
布局使用總結:
普遍的用法是:使用LinearLayout的weight屬性 +RelativeLayout(相對布局)來進行布局,因為這樣可以
解決螢幕的自適應問題
所謂的自適應問題就是:比如你的一個介面,在一台手機上是置中的,但是換了一部手機後組件就亂套了,或者展開
變形等!當然其他布局也有必要進行學習!!!
三種提示方式:對話方塊:
AlertDialog:
連結:對話方塊的父類(AlertDialog)
Toast(土司)和Notification(狀態列)
連結: Toast和Notification
電話撥號器的完整實現:
在前面main.xml布局的基礎上,在MainActivity中添加一些代碼後:
package example.jay.com.myfirstapplication;import android.app.Activity;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;public class MyActivity extends Activity { private EditText editnum; private Button btncall; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my); //①組件執行個體化 editnum = (EditText)findViewById(R.id.editnum); btncall = (Button)findViewById(R.id.btncall); //為撥打按鈕設定點擊事件: btncall.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //獲得編輯框中的號碼值: String mobile = editnum.getText().toString(); Intent it = new Intent(); //為意圖添加一個行為:撥打到電話,並且把電話號碼寫入it中 it.setAction("android.intent.action.CALL"); it.setData(Uri.parse("tel:"+mobile)); //啟動另一個Activity startActivity(it); } }); }}
代碼解析:這裡我們為按鈕設定了一個點擊事件,當我們點擊按鈕後,擷取輸入框中的電話號碼通過意圖Intent,告訴系統,我要Call,Call誰,然後把電話號碼寫入Intent,啟動Intent,完成
運行:
需要我們另外啟動一個虛擬機器:
虛擬機器5556有電話撥入了!
九妹:9patch工具的使用:
製作可伸縮的專有圖片,.9.png圖片:
連結:製作部分展開的圖片素材
android 2天快速入門
mars老師的視頻。pan.baidu.com/...031689聽第一階段的前5,6個視頻,就可以自己做一個簡單的APP了。每個課程大概30分鐘左右。
最好的安卓入門書籍有什 (42的)
瘋狂Android講義(第二版)就是在4.2的版本上講解的