在本文中,我們將介紹一些簡單的處理方式,幫助開發人員輕松編寫出能夠應對各類設備型號的應用程序文本方案,同時為用戶提供自定義文字尺寸功能。別擔心,整個過程沒什么難度,只要一步步按指南進行操作,大家再也不用為調整顯示效果而勞心傷神了。
在這篇上手教程中,我們將討論一些實用性步驟,指引開發人員在擁有足夠靈活性的前提下保證文字清晰易讀,同時使自己的產品能夠適應多種屏幕類型及各類用戶顯示設定。
用戶如何按需求配置字體設定
首先要強調一點,某些用戶可能存在視力障礙甚至幾近失明,他們無法順利閱讀一般尺寸下的文字內容。Android操作系統意識到了這些情況,並提供了一套顯示輔助功能,使得用戶可以根據自己的使用習慣隨意縮放設備中文本字體的大小。
要在設備上修改字體設定,首先啟用“設定”應用,然后選擇“顯示”項下的“字體尺寸”。用戶可以在設備預置的四種文本字體尺寸中選擇適合自己的方案(包含小、正常、大、超大),詳見圖一。
使用動態字體尺寸
如果大家希望自己的應用文字能夠根據用戶偏好設置進行靈活調整,則需要使用SP(即可縮放點)單位對文本字體尺寸加以定義。Android平台允許 我們通過各種方式為各種顯示要素的尺寸賦值。而在文本尺寸方面,我們一般推薦使用諸如DP(與設備無關的像素)及SP為顯示密度進行單獨設定。SP單位在 文字尺寸方面表現最佳,因為它能夠完全按照用戶的顯示設定調整實際效果。
以下內容就是我們在SP單位中利用TextView(即文本顯示)功能定義字體尺寸:
- <TextView
- android:id="@+id/textView4"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="Sample Text - 26sp"
- android:textSize="26sp" />
而在標題、首行文本或者滾動文本框方面,我們往往不希望用戶的偏好設定給顯示效果帶來影響。在這類情況下,大家就應該嘗試DP單位,因為它完全根據設備的像素密度調整顯示,而不涉及任何用戶偏好設定。
使用固定像素尺寸
如果大家希望自己的應用文本在任何情況下都保持同樣的尺寸,那么PX單位的固定像素尺寸功能會幫上大忙。雖然有時候這么做會使默認字體尺寸在某些設 備上難以閱讀,但如果大家有充分的理由堅持這一點,那么禁用文本內容縮放或尺寸變更還是有必要的。在這類情況下,大家不妨利用絕對尺寸值為字體設計大小, 例如指定文字的像素顯示數量。
在下面的文本框中,我們利用像素(簡稱PX)單位為字體設置固定的尺寸。通過這種方式,文本內容會嚴格按照我們的定義進行顯示,而不會被用戶的偏好設置或者其它干擾因素所影響。
- <TextView
- android:id="@+id/textView5"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="Sample Text - Fixed Pixels"
- android:textSize="14px" />
使用標准系統字體尺寸
Android平台定義了一套普遍適用的字體尺寸方案,我們可以將其直接套用到自己的應用程序當中:小、中、大三種選項基本能夠滿足各類用戶需求。這些字體尺寸以SP單位為基礎配置而成,因此會隨着用戶的偏好設置而發生變更。
下面的XML定義了三種文本框控制類型,一種會顯示小字體、一種顯示中字體、第三種則顯示大字體。
- <TextView
- android:id="@+id/textView1"
- style="@android:style/TextAppearance.Small"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="Sample Text - Small" />
- <TextView
- android:id="@+id/textView2"
- style="@android:style/TextAppearance.Medium"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="Sample Text - Medium" />
- <TextView
- android:id="@+id/textView3"
- style="@android:style/TextAppearance.Large"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="Sample Text - Large" />
現在讓我們將前面提到的內容綜合起來,並在“冰淇淋三明治”版本的Android設備上看看文本框的實際顯示效果。先看第一幅圖,用戶在偏好設置中選擇了普通字體;在第二幅圖中,用戶則在偏好設置中選擇了超大字體。請注意文本框功能在不同的設置下是如何控制顯示效果的。
總結
Android設備林林總總,尺寸不同且形狀各異,因此Android用戶必然會根據自己設備型號的不同對應用程序中的字體提出有針對性的需求。由 於屏幕尺寸的固有限制,開發人員必須在應用程序中采取適當的應對措施,才能保證文本內容在任何機型中都擁有理想的可讀性與靈活的排版效果。第一步,確保自 己的應用程序使用完全獨立於設備之外的、以像素為基礎單位的尺寸設置方案,但也不要忘了用戶設置將給實際顯示效果帶來的巨大甚至是意料之外的影響。