From de81619dea3439d917c0b84024b3516abb47fa5e Mon Sep 17 00:00:00 2001
From: David Friedman 這些設計原則是由 Android 使用者體驗團隊開發,並針對 Android 使用者體驗團隊的需求所開發,以使用者的最大利益為出發點。對於 Android 開發者和設計者而言,針對不同類型的裝置,這些原則仍持續是更詳細設計方針的基礎。
+
+
+
+
+當您套用您本身的創意與設計思維時,請考慮這些原則。
+偏離一般做法要帶有目的。
+ 漂亮的外觀、精心設置的動畫,或時機恰到好處的音效,都是令人感到喜悅的體驗。
+微妙的效果有助於產生毫不費力及強大力量就在手邊的感覺。
+ 讓人們可以在您應用程式中直接輕觸和操縱物件,這可減少執行某項工作所需的認知過程,同時在情緒上更令人感到滿足。
+ 人們喜歡加上個人風格,因為這有助於他們感到自在並握有主控權。提供能令人感受及美觀的預設設定,但也可以考慮使用不會阻礙主要工作卻又好玩的可選用性自訂項目。
+
+ 隨著時間而學習使用者的偏好。讓人們易於取得之前的選擇,而不是一再詢問他們會做出相同選擇的問題。
+ 以簡單單字組成簡短語句。人們傾向於略過冗長的句子。 請考慮使用圖片來解釋想法。圖片能吸引人們的注意力,並比言語更有效率。
+ 做出最好的猜測,先行動,而非先詢問。太多的選擇和決定會讓人們不高興。
+為防止錯誤,務必允許復原。 人們無法承受一次看到太多東西。將工作和資訊細分成小型、易消化的區塊。
+隱藏當下不重要的選項,但在人們需要選擇時要明確指導。 給人們信心,知道自己沒有迷路。讓您應用程式中的各處看起來都有獨特性,並使用轉換來顯示畫面之間的關係。
+針對進行中的工作提供回饋。 儲存使用者花時間所建立的資訊,並且讓使用者可從任何地方存取。跨手機、平板電腦和電腦記住設定、個人風格和建立的資訊。
+這會讓升級變得很簡單。
+ 讓功能看起來就不一樣,而非變化微妙,這可以協助人們辨別功能差異。在相同輸入環境下,因為模式看起來很類似但卻有不同的動作,請盡量避免使用。
+ 就像一位好的私人助理,讓人們免於無關緊要的枝微末節。人們總想集中注意力,除非很重要且具時效性,不然貿然中斷會令人感到費力且沮喪。
+ 當人們能自行弄清楚來龍去脈時是很棒的體驗。運用來自其他 Android 應用程式的視覺模式和肌肉記憶效應,讓使用者更易於學會您的應用程式。
+例如,擺動手勢可能是很好的導覽捷徑。
+ 提示人們更正時要溫和。人們使用您的應用程式時,會想要感受到自已非常明智。如果有什麼不對,請提供明確的復原指示,但不需要使用者明瞭技術細節。如果可以,請盡量在幕後修正。
+
+ 將複雜工作細分成更小的步驟,讓使用者可以輕鬆完成。對動作給予回饋,即使只是個微光效果。
+ 讓新手也能做出以前從未想像過可以辦到的事情,讓使用者有專家的感覺。例如,組合多個相片效果的捷徑,只要幾個步驟,即可讓業餘照片令人驚艷。
+
+ 並非所有的動作都一視同仁。決定應用程式中最重要的部分,並讓使用者易於找到並可迅速使用,例如相機的快門按鈕或音樂播放器的暫停按鈕。
+ 使用材料設計建立應用程式 材料設計簡介 紙張和墨水:重要的材料 Google I/O 應用程式中的材料設計 材料設計是一份內容廣泛的綜合性指南,引導您跨平台、跨裝置進行視覺、動態和互動的設計。
+Android 現已納入對材料設計應用程式的支援。
+如果要在 Android 應用程式中使用材料設計,請依照材料設計規格中定義的指示,並使用
+Android
+5.0 (API 層級 21) 或後續版本中的新元件和新功能。 Android 提供下列元素,供您打造材料設計應用程式: 如需取得如何在 Android 上實作材料設計的詳細資訊,請詳見使用材料設計建立應用程式。
+ 材料設計風格提供您應用程式使用的新樣式、可以讓您設定色板的系統小工具,並針對輕觸回饋與操作行為轉換提供預設動畫。
+ 深色材料設計風格 淺色材料設計風格 如需詳細資訊,請參閱使用材料設計風格。
+ Android 提供兩個新的小工具,搭配材料設計樣式與動畫,可用來顯示清單和卡片:
+ 新的 新的 如需詳細資訊,請參閱建立清單和卡片。
+ 除了 X 和 Y 屬性外,Android 中的檢視現在也有 Z 屬性。
+這個新屬性代表檢視的高度,這會決定: 如需取得詳細資訊,請參閱定義陰影和裁剪檢視。
+ 新的動畫 API 可針對 UI 控制項的輕觸回饋、檢視狀態中的變更,以及行為轉換,讓您建立自訂動畫。
+ 這些 API 讓您可以: 輕觸回饋動畫會內建於數個標準檢視中,例如按鈕等。新 API 可讓您自訂這些動畫,並將其新增至您的自訂檢視中。
+ 如需詳細資訊,請參閱定義自訂動畫。
+ 可繪項目的這些新功能可以幫助您實作材料設計應用程式: 如需詳細資訊,請參閱使用可繪項目。
+ 在某些情況下,當使用者在您應用程式中呼叫一個動作時,最好是透過文字來「確認」(confirm) 或「確認完成」(acknowledge)。 確認是要求使用者確認真的要進行剛剛呼叫的動作。在某些情況下,確認訊息出現時會伴隨警告或需要使用者考量是否採取動作的相關重要資訊。 確認完成是顯示文字,讓使用者知道已經完成剛剛呼叫的動作。這會排除系統正在採取之隱式作業的不確定性。在某些情況下,確認完成出現時會伴隨復原動作的選項。 使用這種方式和使用者溝通有助於降低已發生或將發生事情的不確定性。確認或確認完成也可以防止使用者誤犯可能會後悔的錯誤。 並非所有的動作都能保證會執行確認或確認完成。使用此流程圖可以指引您的設計決策。 在此範例中,使用者已要求從其 Google Play 媒體庫中刪除一本書籍。顯示警示來確認此動作,因為使用者必須了解將不再針對任何裝置提供這本書籍。 設計一個確認的對話方塊時,要讓標題具有意義就必須回應要求的動作。 確認不一定要以具有兩個按鈕的警示來呈現。在啟動 Android Beam 之後,會提示使用者輕觸要共用的內容 (在此範例中是一張照片)。如果他們決定不進行,只要移開他們的電話即可。 在此範例中,如果使用者從 Gmail 撰寫畫面返回,可能會發生預期外的狀況:會自動儲存目前的草稿。以快顯通知 (toast) 形式出現的確認完成,會讓使用者明瞭此情況。確認完成會在幾秒鐘後淡出。 在此並不合適使用復原功能,因為儲存動作是由應用程式發起,而非使用者。瀏覽至草稿清單,就可以方便且快速地繼續撰寫。 使用者從 Gmail 清單中刪除一個會話群組後,會出現確認完成訊息,並提供一個復原選項。確認完成會持續出現,直到使用者採取不相關的動作,例如捲動清單。 確認並非必要。如果使用者不小心按了 + 1 按鈕,這並不是什麼大問題。他們可以再次輕觸按鈕,復原此動作。 確認完成並非必要。使用者將會看到 +1 彈起並變成紅色。這是個非常明確的訊號。 確認並非必要。這是特意設計的動作:使用者必須拖曳項目放到相對較大且隔離的目標上。因此極不可能發生意外狀況。但如果使用者後悔所做的決定,只需幾秒鐘,就可以恢復原狀。 確認完成並非必要。使用者會知道應用程式從主螢幕消失,因為是他們將應用程式拖曳離開,所以才會消失。 實作有效的導覽 一致的導覽是整體使用者體驗的必備組成。基本導覽的行為若不一致又令人意外,是最令使用者感到更沮喪的狀況。
+Android 3.0 已將重大變更導入全域的導覽行為中。
+完全遵循 [返回] 及 [上一層] 的方針,會讓使用者感到您的應用程式導覽既可靠又符合預期。
+ Android 2.3 和更早版本依賴系統 [返回]
+按鈕,以支援應用程式內的導覽。在 Android 3.0 導入動作列之後,出現第二個導覽機制:[上一層]
+按鈕,由應用程式圖示和左指符號組成。 [上一層] 按鈕用於在畫面間有階層關係的應用程式中導覽。
+例如,如果畫面 A
+顯示項目清單,然後選擇其中一個項目導致進入畫面 B (更詳細呈現該項目),那麼畫面 B 應該提供 [上一層] 按鈕,以便返回畫面 A。
+ 如果畫面是在應用程式中的最頂端 (亦即應用程式的首頁),則不應該會有 [上一層]按鈕。
+ 系統 [返回] 按鈕用於逆時間順序導覽,透過歷程記錄,可以經歷使用者最近使用過的畫面。
+[返回] 通常基於畫面之間的暫時關係,而非應用程式的階層。
+ 當先前檢視的畫面也是目前畫面的階層父項時,按下
+[返回] 按鈕和按下 [上一層] 按鈕效果相同 — 這是常見的狀況。
+然而,與 [上一層] 按鈕不同的是 (該按鈕可以確保使用者仍停留在您的應用程式內):[返回]
+按鈕可以讓使用者返回主畫面,或甚至是不同的應用程式。 [返回] 按鈕還支援幾個間接關聯畫面對畫面導覽的行為:
+ 有時候,一個畫面在應用程式的階層中並沒有嚴謹的位置,而且可以從多個入口存取 — 例如可以從您應用程式中任何其他畫面存取的設定畫面。在這種情況下,[上一層]
+按鈕應該選擇返回導引至此畫面的前一畫面,這個行為與 [返回] 相同。
+
+ 變更畫面的檢視選項並不會變更 [上一層] 或 [返回] 的行為:畫面仍維持在應用程式階層中的相同位置,並不會建立新的導覽歷程記錄。
+ 這類檢視變更的範例如下: 當您的應用程式支援從項目清單導覽至項目之一的詳細檢視時,使用者通常會想使用方向導覽功能,以便從該項目導覽至清單中的前一個或後一個項目。
+
+例如在 Gmail 中,可以很容易從會話群組向左或右滑動,方便檢視相同「收件匣」中的較新或舊會話群組。
+就像在一個畫面中變更檢視時,這類導覽不會變更 [上一層] 或 [返回] 的行為。
+ 然而有一個明顯的例外是,在不被引用清單綁在一起的相關詳細資料檢視之間瀏覽時 — 例如在 Play 商店中於相同開發者的不同應用程式之間瀏覽時,或是在相同演出者的專輯間瀏覽時。
+
+在這些情況下,瀏覽每個連結都會產生歷程記錄,這會造成 [返回] 按鈕會經歷每個先前檢視過的畫面。
+[上一層] 應該會繼續略過這些相關的畫面,並導覽到最近檢視過的容器畫面。
+ 基於您對詳細資料檢視的瞭解,您有能力讓 [上一層] 行為甚至變得更聰明。
+再延伸說明之前提及的 Play 商店範例,想像使用者已從最近檢視的「書籍」導覽至「電影」改編的詳細資料。
+在這種情況下,[上一層]
+可以返回到使用者之前沒有導覽過的上層容器 (電影)。 您可以使用主畫面小工具或通知,協助您直接導覽至深入您應用程式階層中的畫面。
+例如,Gmail 的「收件匣」小工具和新郵件通知,都可以略過「收件匣」畫面,將使用者直接帶到會話群組檢視之中。
+ 針對這兩種情況,可以使用下列方式來處理 [上一層] 按鈕: 就 [返回] 按鈕而言,您應讓導覽更符合預期,方法是在工作的返回堆疊中,插入前往應用程式最頂端畫面的完整向上導覽路徑。
+這可讓忘了如何進入您應用程式的使用者,能在退出之前導覽至應用程式的最頂端畫面。
+
+ 舉例來說,Gmail 的主畫面小工具有一個按鈕,可以直接往下進入撰寫畫面。
+來自撰寫畫面的 [上一層] 或 [返回] 按鈕,會將使用者帶到「收件匣」中,而此處的 [返回] 按鈕則可繼續前往至「主畫面」。
+ 當您的應用程式需要同時呈現多個事件的資訊時,可以使用單一通知,引導使用者進入一個插頁畫面。
+此畫面會摘要這些事件,並提供路徑,讓使用者可以深入應用程式之中。這種風格的通知稱為「間接通知」。
+
+ 與標準 (直接) 通知不同的是,從間接通知的插頁畫面按下 [返回],會讓使用者返回至通知觸發的起點 — 無其他畫面會插入至返回堆疊之中。
+
+一旦使用者從插頁畫面繼續進入應用程式之後,[上一層]
+與 [返回] 會如上所述,其行為就像針對標準通知一樣:在應用程式內導覽,而非返回插頁畫面。
+ 例如,假設 Gmail 中的使用者收到來自「行事曆」的間接通知。輕觸這個通知會打開插頁畫面,而此畫面會顯示數個不同事件的提醒。
+
+從插頁畫面輕觸 [返回],會讓使用者返回至 Gmail。輕觸特定事件會將使用者帶離插頁畫面,並進入完整的「行事曆」應用程式,顯示事件的詳細資料。
+
+從事件詳細資料中,[上一層] 和 [返回] 會導覽至「行事曆」的最頂層檢視。 快顯通知會略過通知匣,直接出現在使用者面前。
+這不常使用,應該要保留在需要適時回應,以及必須中斷使用者前後關聯動作的時候。
+例如,Talk
+就使用這種風格,用來提示使用者有朋友邀請加入視訊聊天,而且此邀請會在幾秒之後自動過期。
+ 就導覽行為而言,快顯通知緊接著間接通知插頁畫面的行為。
+[返回] 會關閉快顯通知。如果使用者從快顯導覽進入通知應用程式,[上一層]
+和 [返回] 會遵循標準通知的規則,只在應用程式內導覽。
+ Android 系統的基本優點之一是應用程式互相啟動的能力,讓使用者能夠直接從一個應用程式導覽至另一個應用程式。
+例如,需要擷取一張相片的應用程式可以啟動「相機」應用程式,而此應用程式會將相片傳回引用的應用程式。開發人員可以輕鬆利用其他應用程式的程式碼,而使用者在經常執行的動作中可以享受一致性的體驗,這對雙方都是一大好處。
+
+
+
+ 要瞭解應用程式對應用程式的導覽,重要的是要瞭解以下討論的 Android 架構行為。
+ 在 Android 中,活動是一個應用程式元件,定義了資訊畫面,以及使用者可以執行的所有關聯動作。
+您的應用程式是個活動的集合,包括您可以建立及您能從其他應用程式重複使用的活動。
+ 工作是使用者遵循以達到目標的一系列活動。單一工作可以利用來自單一應用程式的活動,或是汲取數個不同應用程式的活動。
+
+ 意向是指應用程式所發出想要另一套應用程式協助執行某動作訊號的機制。
+應用程式的活動可指示其可回應哪些意向。
+針對如「共用」等常見意向,使用者可能已安裝許多可以滿足此要求的應用程式。
+ 要理解活動、工作和意向如何攜手合作,請思考應用程式如何讓使用者使用另一套應用程式來共用內容。例如,從「主」畫面啟動 Play 商店應用程式,開始新工作 A (見下圖)。
+
+在導覽經歷 Play 商店,並輕觸一本促銷的書籍以查看詳細資料後,使用者仍會停留在相同工作中,並透過新增行為延伸工作。
+觸發「共用」動作會提示使用者一個對話框,列出已註冊可用來處理「共用」意向的每個活動 (來自不同的應用程式)。
+
+ 當使用者選擇透過 Gmail 共用,Gmail
+的撰寫活動會被新增為工作 A 的延續 — 而不會建立新工作。如果 Gmail 有本身的工作正在背景執行,這並不會影響該工作。
+ 從撰寫活動中,傳送訊息或輕觸 [返回] 按鈕,會讓使用者返回至書籍詳細資料的活動。
+繼續輕觸 [返回] 則會經由 Play 商店往回導覽,最終到達「主畫面」。
+ 然而,透過輕觸撰寫行為的 [上一層],代表使用者指明停留在 Gmail 的意願。
+Gmail 的會話群組清單活動會隨即出現,並針對該活動建立一個新的工作 B。新工作的最後根源都是「主畫面」,所以從會話群組輕觸 [返回] 會返回至該處。
+ 工作 A 仍然存在背景之中,而使用者可能會在稍後返回 (例如,透過「最近」畫面)。
+如果 Gmail 在背景正在執行自己的工作,則其會被工作 B 取代 — 並捨棄之前的前後關係,而就使用者的新目標。
+ 當您的應用程式註冊來處理具有深入應用程式階層活動的意向時,請參考透過主畫面視窗小工具和通知,導覽至您的應用程式,取得如何指定 [上一層] 導覽的指導方針。
+
+ 通知使用者 DevBytes:Android L 開發者預覽版中的通知 通知系統可以隨時知會使用者有關應用程式中的相關事件與及時事件,例如來自朋友的新聊天訊息。您可以將通知視為一種事件發生時警示使用者的新聞管道,或是在使用者沒注意時,記錄事件的日誌 — 並會視情況跨所有 Android 裝置且同步處理。
+
+
+
+
+
+ 在 Android 5.0 中,通知會透過結構化、視覺化和功能化的效果接收重要更新:
+ 注意:此版本 Android 中的通知設計和先前版本大相徑庭。
+
+如需有關先前版本通知的設計資訊,請參閱
+Android 4.4 及較早版本中的通知。 本節會重溫通知的基礎功能,以及其如何可在不同類型裝置上出現。
+ 至少,所有通知都必須包含一個基礎版面配置,它包含: 針對先前平台版本,使用 {@link android.app.Notification.Builder Notification.Builder}
+所建立的通知其外觀與運作方式和在 Android 5.0
+中的一樣,只是在系統為您處理的方式上有一點樣式上的變更。
+如需更多有關 Android 先前版本通知的詳細資訊,請參閱
+Android 4.4 及較早版本中的通知。
+使人著迷
+
+以出乎意外的方式取悅人
+
+
+
真實的物件比按鈕和功能表更有趣
+
+
+
提供個人設定
+
+
+
設法了解使用者
+
+
+
簡化生活
+
+保持簡潔
+
+
+
圖片的傳達效果更勝於言語
+
+
+
幫使用者決定,但使用者擁有最終決定權
+
+
+
必要時僅顯示使用者需要的東西
+
+
+
使用者應該總是清楚所在位置
+
+
+
別弄丟使用者的東西
+
+
+
如果看起來一樣,就應該有相同的動作
+
+
+
重要時才打斷
+
+
+
讓使用者驚艷
+
+提供使用者各處通用的訣竅
+
+
+
不是使用者的錯
+
+
+
分段鼓勵
+
+
+
為使用者處理繁重的工作
+
+
+
快速找到重要的功能
+
+
+
開發人員文件
+ 影片
+ 影片
+ 影片
+
+
+
+材料設計風格
+
+
+
+
+清單和卡片
+
+
+
RecyclerView
小工具是 ListView
+更容易插入的版本,支援不同的版面配置類型,並提供效能改善。
+
CardView
小工具讓您可以顯示卡片內的重要資訊,並且該資訊都能擁有一致的外觀與風格。
+
+檢視陰影
+
+
+
+
+動畫
+
+
+
+
+可繪項目
+
+
+
+
+
+
+
確認或確認完成使用者動作的時機
+
+
+
確認
+範例:Google Play 書籍
+
+
範例:Android Beam
+
+
確認完成
+範例:已儲存放棄的 Gmail 草稿
+
+
範例:已刪除 Gmail 會話群組
+
+
無「確認」或「確認完成」
+範例:+1 中
+
+
範例:從主螢幕移除應用程式
+
+
開發人員文件
+
+
+
[上一層] vs.[返回]
+
+
+
+
+
+在應用程式內導覽
+
+導覽至具有多重入口的畫面
+在畫面內變更檢視
+
+
+在同層級畫面間導覽
+
+
+
+
+
+
+
透過「主畫面小工具」和「通知」,導覽至您的應用程式
+
+
+
+
+
+
+
間接通知
+
+
+
+
快顯通知
+
+
+
+
在應用程式間導覽
+
+活動、工作和意圖
+
+範例:在應用程式間導覽,以支援共用
+
+
+
+
+
+
+
+
開發人員文件
+ Android 4.4 及較早版本中的通知
+ 影片
+ Android 5.0 新功能
+
+
+
+
+通知的詳細分析
+
+基礎版面配置
+
+
+
+
+
+ 手持裝置通知的基礎版面配置 (左),以及穿戴裝置上的相同通知 (右),都帶有使用者相片及一個通知圖示 + +
+您可以選擇到底要讓您應用程式的通知提供多詳細的資料。 +通知可以顯示訊息的前幾行,也可以顯示較大的影像預覽。 +此額外資訊可提供使用者更多內容,而且 — 在某些情況下 — 可讓使用者讀取完整訊息。 + + +使用者可以捏合縮放或執行單手指滑動,在精簡的版面配置與擴充的版面配置間切換。 + + + 對於單一事件通知,Android 提供三個擴充版面配置範本 +(文字、收件匣和影像),讓您可以在應用程式中使用。 +以下的影像顯示單一事件通知在手持裝置 (左) 和穿戴裝置 (右) 上的外觀。 + +
+ +Android 支援可以在通知底端顯示的選用動作。透過動作,使用者可針對特定通知,從通知欄 (notification shade) 內處理最常見的工作,而無需開啟原始啟動的應用程式。這可加速互動,而且在配合滑動關閉 +(swipe-to-dismiss) +時,有助使用者專注於高重要性的通知。 + + + +
+ + +明智地決定要在通知中要納入多少個動作。 +您納入的動作愈多,就會發現創造出愈複雜的通知。 +請納入最緊迫重要且有意義的動作,限制自己儘可能使用最少數目的動作。 + + +
+ +適合用於通知上的動作包含:
+ +避免下列狀況:
+ +您最多可以指定三個動作,每個動作都由一個動作圖示與名稱組成。 + + 為簡單的基礎版面配置新增動作,可讓通知變得更具擴充性 +-- +即使通知並未具備擴充的版面配置。由於動作只針對擴充的通知顯示,其他時候則隱藏,請確認使用者可從通知內呼叫的任何動作,也可以從關聯的應用程式中使用。 + + + + +
+ ++ 預告通知 (來電、高優先順序) +出現在沉浸式應用程式之上的範例 + +
+當高優先順序的通知到達 (如右) 時,會對使用者呈現很短的時間,且會顯示可能執行動作的擴充版面配置。 + +
+在這段時間之後,通知會退回至通知欄。 +如果通知的優先順序被標記為「高」、「最大」或「全螢幕」,就會取得預告通知。 +
+ +預告通知的好範例
+ +針對由另一人傳送項目的通知 +(如郵件或狀態更新),使用 +{@link android.app.Notification.Builder#setLargeIcon setLargeIcon()} 納入對方提供的影像。也將對方的資訊附加至通知的中繼資料中 +(請參閱 {@link android.app.Notification#EXTRA_PEOPLE})。
+ +您通知的主要圖示仍會顯示,這樣使用者就可以將主要圖示與狀態列中的可見圖示關聯起來。 + +
+ + ++ 通知會顯示觸發通知的人及其傳送的內容。 +
+ + +當輕觸通知的本文時 +(在動作按鈕之外),請將您的應用程式開啟至使用者可以檢視的地方,並根據通知中引用資料進行動作。 + +在多數情況下,這將是單一資料項目 (如訊息) 的詳細資料檢視,但如果通知被堆疊時,也可能會是概述檢視。 + +如果您的應用程式會將使用者帶到應用程式頂層之下的任何地方,則請將導覽過程插入應用程式的返回堆疊中,這可以讓使用者能夠按下系統的返回按鈕,返回至頂層。 + +如需詳細資訊,請見導覽設計模式中的「透過主螢幕視窗小工具和通知,導覽至您的應用程式」。 + +
+ +Android 支援對通知設定優先順序的旗標。此旗標可與其他通知旗標比較,影響通知顯示的位置,這有助於確保使用者一律會先看到最重要的通知。 + + +在發佈通知時,您可以從以下優先順序等級選擇: + +
+
+ 優先順序 + |
+
+ 使用 + |
+
+
|
+
+ 用於關鍵且緊急的通知,警示使用者注意此通知具時效性或必須在繼續特定工作前先解決的情況。 + + + + |
+
+
|
+
+ 主要用於重要通訊,例如內容為使用者特別感興趣的郵件或聊天事件。高優先順序通知會觸發預告通知的顯示。 + + + |
+
+
|
+
+ 用於不屬於此處所述任何其他優先事項類型的所有通知。 + |
+
+
|
+
+ 用於您希望使用者能夠被告知,但不那麼緊急的通知。 +低優先順序通知往往出現在清單的底端,因此適合於公共或間接的社交更新: + +使用者已要求針對這類事件通知,但這些通知一律不會優先於緊急或直接通訊。 + + + + |
+
+
|
+
+ 用於內容關聯或背景資訊,例如天氣資訊或內容關聯位置的資訊。最低優先順序通知不會出現在狀態列。 + +使用者會在展開通知欄時找到這些通知。 + + |
+
DEFAULT
、HIGH
和 MAX
為可中斷的優先順序等級,且有打斷使用者正進行動作的風險。
+
+如要避免惹惱您應用程式的使用者,請將可中斷的優先順序保留給下列通知:
+
對使用者而言,設定為 LOW
和 MIN
的通知仍可能很有價值:
+很多通知 -- 就算不是大多數 -- 並不需要使用者立即注意,或透過振動使用者的手腕加以提醒;但在使用者選擇查看通知時,這些通知仍會包含使用者覺得有價值的資訊。
+
+
+LOW
和 MIN
+ 優先順序通知的準則包含:
如果您的通知屬於某個預先定義的類別 +(詳見下列說明),則請據以指派。 +通知欄 (或任何其他通知接聽器) 等系統 UI +可能會使用此資訊,決定排名和篩選結果。 +
++ + | +
+ 來電 (語音或視訊) 或類似的同步化通訊要求 + + |
+
+ + | +
+ 傳入的直接訊息 (簡訊、即時訊息等) + |
+
+ + | +
+ 非同步大量郵件 (電子郵件) + |
+
+ + | +
+ 「行事曆」事件 + |
+
+ + | +
+ 宣傳或廣告 + |
+
+ + | +
+ 鬧鐘或計時器 + |
+
+ + | +
+ 長時間執行的背景操作其進度 + |
+
+ + | +
+ 社交網路或共用更新 + |
+
+ + | +
+ 背景操作或驗證狀態中的錯誤 + |
+
+ + | +
+ 播放的媒體傳輸控制 + |
+
+ + | +
+ 系統或裝置狀態更新。保留供系統使用。 + |
+
+ + | +
+ 執行背景服務的表示 + |
+
+ + | +
+ 針對單一件事的特定、及時建議。例如,新聞應用程式可能會想推薦其認為使用者下一步想要閱讀的新聞報導。 + + + |
+
+ + | +
+ 有關裝置或內容關聯狀態的進行中資訊 + |
+
當您的應用程式嘗試傳送的通知,但已有類型相同的通知仍在等待中,則請針對應用程式將這些相同類型的通知合併為單一概述通知,而不要建立新物件。 + +
+ +概述通知會建立概述描述,並讓使用者瞭解特定種類的通知有多少數目正在等待處理。 + +
+ +不要這樣做
+請這樣做
+ +您可以使用擴充摘要版面配置,針對組成概述的個別通知,提供更多詳細資料。 + +這種方法可讓使用者更能感覺出哪些通知正處於等待處理,以及是否夠有趣,以便在關聯應用程式中詳細閱讀。 + + + +
+
+ 概述實際上是通知的展開和收縮 (使用 InboxStyle
)
+
使用者應該總是能夠控制通知。讓使用者可以停用您應用程式的通知,或變更其警示屬性,如鬧鐘聲音或是否要使用振動,方法則是為您的應用程式設定新增通知設定項目。 + + + +
+ +使用者應該能瞄一下通知區域,即可以分辨哪些種類的通知目前正在等待處理。 + +
+ +請這樣做
+查看 Android 應用程式圖示, +Android 應用程式已為您的應用程式提供外觀易於分辨的通知圖示。 +
+ +請這樣做
+針對小圖示使用通知圖示樣式,針對您的動作列圖示使用 Material Light 動作列圖示樣式。 + + + +
+請這樣做
+讓圖示保持看起來簡單的狀態,避免因過多的詳細資料造成使用者難以看清楚。 +
+ +不要這樣做
+將任何額外的 +Alpha +(變暗或淡出) +置入您的小圖示和動作圖示之中;它們的邊緣可能會有反鋸齒狀,但因為 Android 使用這些圖示做為遮罩 +(也就是說,只使用 Alpha 通道),所以影像通常會以完全透明度來繪製。 +
+ +不要這樣做
+ +使用顏色以區分您與其他人的應用程式。通知圖示應該只是個白色圖示透明背景的背景影像。 +
+ + +許多 Android 裝置具備通知 LED,可用於當螢幕關閉時通知使用者有新事件。
+
+優先順序等級為MAX
、HIGH
和 DEFAULT
的通知,
+應該要讓 LED 亮起,而只有低優先順序 (LOW
和 MIN
) 的通知則不需要。
+
+
使用者對通知的控制應該延伸到 LED 上。當您使用 DEFAULT_LIGHTS,LED 會亮白色。 + +除非使用者已明確自訂通知,否則您的通知不應該使用其他顏色。 + +
+ +若要建立使用者喜歡的應用程式,精心設計您的通知非常重要。通知代表您應用程式的聲音,並有助於您應用程式的個性。 + + +非必要或非重要的通知會讓使用者不高興,這會讓他們覺得應用程式想要吸引注目不擇手段,所以請明智地使用通知。 + + +
+ +若要建立人們喜歡使用的應用程式,重要的是要體認到使用者的注意與專注是必須加以保護的資源。
+
+雖然 Android 的通知系統已重新設計,儘量降低通知對使用者注意力的影響。但仍然必須警覺,通知會中斷使用者的工作流程。在規劃您的通知時,請先自問:通知是否足夠重要到可以合理地中斷使用者。
+
+
+
+
+
+
+如果您不確定,則讓使用者可以使用您應用程式的通知設定,或調整通知優先順序旗標為 LOW
或 MIN
,避免使用者在從事其他工作時因此分心。
+
+
+
+
+ 具時效性的通知範例 +
+ +妥善規劃的應用程式只會在必要時才出現,但有幾個情況的確有益於應用程式透過無提示通知中斷使用者的行為。 +
+ +通知主要還是使用於具時效性時間的事件,特別是當這些同步事件涉及其他人的時候。 +比如說,傳入的聊天是通訊的即時、同步形式: + +另一個使用者正主動等待您的回應。 +「行事曆」事件是何時使用通知吸引使用者注意的另一個好例子,因為事件即將發生,而「行事曆」事件通常牽涉到其他人。 + + +
+ +在許多其他情況下,通知並不適當:
+ +通知可由狀態列上的圖示表示,並可以透過開啟通知匣來存取。 + +
+ +輕觸通知會開啟相關應用程式,顯示符合通知的詳細資料內容。對通知往左右滑動,可以將通知從通知匣中移除。 + +
+ ++ 因為音樂播放的緣故所以有進行中通知 +
+進行中通知可讓使用者得知在背景中正在進行程序的資訊。例如,音樂播放程式會在通知系統中宣告正在播放的曲目,除非使用者停止曲目,否則就會繼續宣告。 + + + +進行中通知也可以針對如下載檔案或編碼影片等耗時較長的工作,向使用者顯示目前進度。 + +使用者無法手動將進行中通知從通知匣移除。 +
+ +在 Android 5.0 中,鎖定螢幕不會針對已過時的 +{@link android.media.RemoteControlClient} 類別,顯示傳輸控制項。但鎖定螢幕「的確」會顯示通知,所以每個應用程式的播放通知,現在都已經是使用者從鎖定狀態控制播放的主要方法。 + +這個行為可讓應用程式進一步控制以何種方式顯示哪些按鈕,同時無論螢幕是否鎖定,都能為使用者提供一致性的體驗。 + + +
+ +您的應用程式目前若不在畫面上,就不應建立對話或快顯通知。 +對話或快顯通知只在使用者於您應用程式內採取動作時產生立即回應時才顯示。至於使用對話與快顯通知的進一步指引,請參閱確認和確認完成。 + + + +
+ +通知就是新聞,所以基本上是以逆時間順序顯示,同時會針對應用程式指定的通知優先順序,給與特殊考慮。 + + +
+ +通知是鎖定螢幕的重要部分,並會在裝置重新顯示螢幕時明確作用。 + +鎖定螢幕上的空間有限,所以更重要的是辨別出最緊急或相關的通知。 + +基於這個理由,Android 針對通知提供了更複雜的排序演算法,並同時考慮: + +
+ +要善用這種排序,請著重於您想要建立的使用者體驗,而非著眼於清單上的任何特定排名位置。 + +
+ +Gmail 通知使用預設的優先順序,所以通常排序低於像 Hangouts 等即時訊息應用程式,但當有新郵件進來時,會暫時立即提升。 + + + + +
+ + +由於通知可見於鎖定螢幕上,因此使用者隱私是特別重要的考量。 + +通知通常包含敏感資訊,而且不一定要顯示給拿起裝置並打開顯示的任何人。 + +
+ ++ 鎖定螢幕上的通知,以及使用者解鎖裝置後顯示的內容。 +
+當設定安全鎖定螢幕時,使用者可以選擇隱藏來自安全鎖定螢幕的機密詳細資料。 +在這種情況下,系統 UI 會考慮通知的「可見度」等級,判斷可以顯示何種內容。 + +
+ 如要控制可見度等級,可以呼叫
+Notification.Builder.setVisibility()
,並指定下列值之一:
+
VISIBILITY_PUBLIC
。
+顯示通知的完整內容。
+ 如果未指定可見度,則這會是系統預設值。VISIBILITY_PRIVATE
。
+在鎖定螢幕上,顯示這個通知存在的基本資訊,
+包括通知圖示和發佈通知的應用程式。通知詳細資料的其他部分則不會顯示。
+但請記住的下列幾點:
+ Notification.publicVersion
+欄位中提供一個取代的「通知」物件。
+ VISIBILITY_PRIVATE
,但 publicVersion
仍包含像「3 個新訊息」等實用資訊,
+但卻又不提供任何其他可用來識別的詳細資料。
+
+ Notification.VISIBILITY_SECRET
。僅顯示最起碼的資訊,
+甚至連通知圖示都排除。預設情況下,通知和其動作會橋接至穿戴裝置。 +開發人員可以控制哪些通知可從電話橋接至手錶上, +反之亦然。 +開發人員還可以控制哪些動作可以橋接。如果您的 +應用程式包含 +無法以單一點選完成的動作, +請在您的穿戴通知上隱藏這些動作 +,或考慮將其連結至穿戴應用程式, +讓使用者可以在手錶上完成動作。 +
+ +例如電話等已連線的裝置, +可以橋接通知至穿戴裝置,讓通知可以在該處顯示。同樣的,也可以橋接動作, +這樣使用者就可以直接從穿戴裝置對通知執行動作。
+ +橋接
+ +請勿橋接
+ +有些動作只能在穿戴裝置上執行。這些動作包含:
+ +