目前分類:Android教學影片觀後筆記 (25)

瀏覽方式: 標題列表 簡短摘要

範例程式的目的:

1. 透過Handler實現線程間的通訊。

2. 在主線程當中實現HandlerhandleMessage()方法。

3. Worker Thread當中透過Handler發送消息。

 

範例程式的主題:

利用Worker Thread發送消息給Main Thread,即使用者按下發送按鈕後,模擬向網路伺服器獲取數據的休眠2秒鐘,之後再將獲取到的數據更新到使用者觀看的介面上(即TextView)。

 

程式碼

文章標籤

Elsa 發表在 痞客邦 留言(0) 人氣()

什麼是HandlerLooper

1. HandlerLooperMessageQueue是組成「消息傳遞機制」的重要原素。

2. Handler是一個類,其負責把消息物件「加到」消息隊列(其又可稱為訊息佇列MessageQueue,為採用先進先出法的隧道)裡。

3. Looper負責不斷地將消息物件從消息隊列中「取出」來。而如果消息隊列中無消息物件的話,則Looper會造成阻塞,即等待的狀態

 

HandlerLooperMessageQueue的基本原理

文章標籤

Elsa 發表在 痞客邦 留言(0) 人氣()

回顧Java當中的線程概念

1. 線程的二種實現方式:繼承Thread(其代表的是線程)或實現Runnable接口(其只僅代表線程體,即線程需執行的程式碼)

2. 線程的生命週期:創建線程à調用線程start的方法à線程進入就緒狀態à搶到CPU就可進入到運行狀態à如被其它的線程搶走CPU或進入阻塞狀態(sleep方法),則進入就緒狀態à一直反覆,直到線程體執行完,則該線程就算是執行完了à線程進入死亡狀態。

※當一個線程進入死亡狀態的話,就不可能再復活了。

3. 多線程同步(即同步代碼塊),用於解決多線程同時執行與使用同一資源所可能會產生的誤差之問題。而同步時,只允許一個線程來使用該資源。

 

Android當中的線程介紹 - Main Thread(/UI線程)Worker Thread(其它線程)

文章標籤

Elsa 發表在 痞客邦 留言(0) 人氣()

Intent物件的基本概念

1. IntentAndroid應用程序組件(即零件)之一。

2. Intent物件在Android系統當中表示一種「意圖」

3. Intent當中最重要的內容是actiondata

 

Intent物件的基本使用方法

文章標籤

Elsa 發表在 痞客邦 留言(0) 人氣()

Activity物件的狀態

1. ResumedActivity物件處於正常的運行狀態;

2. Paused:另一個Activity位於前端,但是本Activity還可見(即位於前端的Activity為對話框類的物件);

3. Stopped:另一個Activity位於前端,完全遮擋本Activity

 

一個Activity處於PausedStopped狀態時,並不表示其會釋放內存的空間,如需釋放空間的話,需以手動的方式去釋放之。

 

成對的生命週期函數

文章標籤

Elsa 發表在 痞客邦 留言(0) 人氣()

什麼是生命週期?

以人為例,即人有幼年(其階段工作為吃、睡、玩)、青年(其階段中主要的工作為學習)、壯年(其階段中主要的工作為工作、結婚)…等,而相對的物件也有生命週期,一個物件從創建到運行,及執行各式各樣的任務,並到最終的被銷毀等階段,我們也可稱其為物件的生命週期。

 

Activity的生命週期函數與其調用時機

 02_activity_lifecycle.png  

▲ Activity運行流程圖(長方形代表callback methods(回呼函式),可以做出想要處理的事情,有顏色的部份就是實際Activity會處於的狀態)

文章標籤

Elsa 發表在 痞客邦 留言(0) 人氣()

如何在一個應用程序當中定義多個Activity

定義步驟如下:

1. 定義一個類,繼承Activity

2. 在該類當中,複寫Activity當中的onCreate方法(SourceàOverride/Implement Methods…àActivity/onCreate(Bundle))

3. 建立一個新的佈局文件。

4. AndroidManifest.xml文件當中註冊該Activity,而其最少需撰寫出name(activity的名稱,即包名+類名)label(activity顯示的名稱)此二個屬性。

01_SecondActivity-1.jpg

文章標籤

Elsa 發表在 痞客邦 留言(0) 人氣()

SeekBar的介紹 - SeekBar的主要屬性與OnSeekBarChangeListener之使用

 18_SeekBar.jpg  

1. SeekBar的進度條是「可拖動」,與上一篇所介紹的不可拖動之ProgressBar使用大不相同。SeekBar大多運用在「影音播放器」上。

 

2. SeekBar的主要屬性為:

(1) 進度條最大值:max

(2) 當前進度:progress

(3) 次要進度的值:SecondaryProgress

 

3. SeekBar監聽器 – OnSeekBarChangeListener中三個重要的方法:

(1) onProgressChanged(SeekBar seekBar, int progress, boolean fromUser):用於SeekBarProgress出現了變化,就會觸發該監聽器,例如:使用者往前/後拖拉進度條時。

參數介紹:

seekBar-觸發監聽器的SeekBar的物件;

progress-當前SeekBar的進度;

fromUser-判斷該變化是否由使用者所引起的,因變化可分成影音播放時自動的往前跑(該值為false),以及使用者自行拖拉(該值為true)這二種,所以需透過此一參數來分別做不同的處理。

(2) onStartTrackingTouch(SeekBar seekBar):當使用者「開始」拖拉進度條時,將會調用此一方法。

(3) onStopTrackingTouch(SeekBar seekBar):當使用者「停止」拖拉進度條時,將會調用此一方法。

18_seekbar_layout.jpg

文章標籤

Elsa 發表在 痞客邦 留言(0) 人氣()

Android當中的進度條與其之間種類的關係

 17_Android當中的進度條之種類.jpg  

▲ 進度條的種類

17_各種進度條的關係.jpg   

▲ 各種進度條的關係

 

1. ProgressBarSeekBarRating的父類。

 

2. ProgressBarStyle,分為:

文章標籤

Elsa 發表在 痞客邦 留言(0) 人氣()

TimePicker的使用方法

 16_TimePicker.jpg  

1. TimePicker用於「時間」的選擇。

2. OnTimeChangedListener用於監聽TimePicker的一些行為,並做出相應的處理。

文章標籤

Elsa 發表在 痞客邦 留言(0) 人氣()

RelativeLayout佈局的新屬性(Android 4.2)

1. android:layout_alignStart:對齊至起始的位置,參數值需為相對應的控件ID

2. android:layout_alignEnd:對齊至終點的位置,參數值需為相對應的控件ID

3. android:layout_alignParentStart:對齊至父控件起始的位置,參數值為truefalse

4. android:layout_alignParentEnd:對齊至父控件終點的位置,參數值為truefalse

15_relative_layout-新屬性.jpg

15_Firstproject結果-新屬性.jpg  

 

相對佈局練習-登入介面

文章標籤

Elsa 發表在 痞客邦 留言(0) 人氣()

如何對齊至控件的基準線?

什麼是基準線(Baseline)

基準線是為了保證印刷字母的整齊而劃定的線。主要用於英文上。

 14_基準線.jpg  

 

基準線(BaseLine)程式範例

文章標籤

Elsa 發表在 痞客邦 留言(0) 人氣()

什麼是相對佈局(RelativeLayout)

1. RelativeLayout是另外一種控件擺放的方式。

2. RelativeLayout是透過指定當前控件與兄弟控件或者是父控件之間的相對位置,從而達到控制控件位置的目的。

 

為什麼要使用RelativeLayout

 12_Firstproject結果-HW.jpg  

以上篇所講的猜拳遊戲之版面為例,如果為了實現該版面的話,需使用多個LinearLayout互嵌,因此其複雜度也相對的提高許多,更遑論UI的性能了。

 

◎相對佈局(RelativeLayout)的基本思路與優勢

文章標籤

Elsa 發表在 痞客邦 留言(0) 人氣()

多個LinearLayout佈局的嵌套

 12_LinearLayout佈局的嵌套情況.jpg 12_linear_layout.jpg

12_Firstproject結果.jpg  

 

使用layout_weight屬性的要點

文章標籤

Elsa 發表在 痞客邦 留言(4) 人氣()

圖片視圖(ImageView)的基本概念

1. XML文件當中使用<ImageView/>標籤

2. 在代碼當中使用ImageView的物件表示

3. ImageView用於裝圖片的容器

 

<ImageView/>ImageView之間的關係與程式範例

11_activity_main.jpg 11_MainActivity.jpg 11_Firstproject結果.jpg  

 

ScaleType屬性之介紹

ScaleType使用時機

文章標籤

Elsa 發表在 痞客邦 留言(0) 人氣()

單選按鈕(RadioButton)的基本概念

1. XML文件當中使用<RadioButton/><RadioGroup/>標籤

2. 在代碼當中使用RadioGroupRadioButton的物件表示

3. 常用OnClickListenerOnCheckedChangeListener監聽器

 

RadioGroupRadioButton之間的關係

 10_單選按鈕與群組之間的關係.jpg  

RadioGroup除了用於限定該群組中所包含的RadioButton是同一組的之外,在同一組中的選項只能被單選出一個。

 

OnCheckedChangeListenerOnClickListener監聽器程式範例

文章標籤

Elsa 發表在 痞客邦 留言(0) 人氣()

多選按鈕(CheckBox)的基本概念

09_多選按鈕.jpg  

1. XML文件當中使用<CheckBox/>標籤

2. 在代碼當中使用CheckBox的物件表示

3. 常用OnClickListenerOnCheckedChangeListener監聽器

 

OnClickListener監聽器程式範例

文章標籤

Elsa 發表在 痞客邦 留言(0) 人氣()

顯示單位

Android 允許我們使用的單位有 px (pixels), dip (device independent pixels), sp (scaled pixels), pt (points), in (inches), mm (millimeters)等,下述將介紹pxdpsp

px 像素

這些訊息元素大多採用點或者方塊等方式顯示,而每個像素可有各自的顏色值,其是以三原色(紅、綠、藍)/RGB色域等來顯示。

在固定的單位面積內所包含的像素越多,即代表解析度越高,其所顯示的圖像就會越接近於真實物體。

 08_px.jpg  

dp 設備獨立像素

   什麼是dp

文章標籤

Elsa 發表在 痞客邦 留言(0) 人氣()

控件佈局的基本概念

什麼是控件佈局?

指控制控件在Activity當中的位置、大小、顏色,以及其它控件樣式屬性的方法。

 

怎麼控制控件佈局?

方法一:使用佈局文件完成控件佈局 (靜態)

方法二:在Java代碼當中完成控件佈局 (動態)

 

控件佈局的種類

   Layout

Linear Layout:線形佈局,其較常用於學習時使用。

Relative Layout:相對佈局,其為日常生活中較常使用之佈局方式。

 07_Layout佈局.jpg  

   View

List View:清單式佈局。

Grid View:網格式佈局清單式佈局。

 07_View佈局.jpg  

 

線形佈局(LinearLayout)的基本使用方法

如何產生一新的佈局文件?

文章標籤

Elsa 發表在 痞客邦 留言(0) 人氣()

View的基本概念

什麼是View

即在Acivity上所顯示的控件,就稱之為「View」。所以,View是所有控件的「父類」。

 06_什麼是View.jpg  

 

View的種類

 06_View的種類.jpg  

 

如何設置View的屬性?在Activity當中如何獲取與控制代表View的物件?

文章標籤

Elsa 發表在 痞客邦 留言(1) 人氣()

1 2