安卓那些與標註有出入的文字實現

如果你是一個心細而且認真負責的UI的話,你就會發現Android開發出來的文字排版效果和設計稿總是會有一些出入,而iOS卻不存在這種問題。

跟開發的朋友討論過這個問題,原因很簡單,iOS端可以精確地控制文本框的大小,而Android端,文本框是根據字體的大小自動生成的,具有不可控性。

換句話說,不管你願不願意,它都在那裡,或大或小,都有那麼多的間隙。

舉個例子:

Android手機,打開「設置-開發者選項-顯示布局邊界」,就能夠直接看到每個控制項的大小以及相互間的 Margin 和 Padding 的距離,下圖就是開發者狀態下的界面顯示情況,

我們會發現,圖片中 Textview 的上下高度,總是比文字的實際上下高度要高出一些。這是因為Textview 會有一個默認高度。而且,不同字型大小默認的高度是不一樣的

我們在做設計稿的時候,無論是用PS還是的其他設計軟體進行標註,標註到的基本上都是實際像素的位置。

這樣就容易導致:標註上的文字間距是40px,實際開發出來的效果呢,就肯定會大於40px。

這種誤差是無法避免的,而且文字的尺寸越大,Textview 的默認高度與實際像素的差距就越大,對頁面布局的影響也就越大。

對於這樣的誤差並沒有很好的解決辦法,只能通過後期的調整來縮小這種偏差,來實現視覺效果的還原性。

那麼問題來了,要怎麼進行調整呢?

每次遇到這樣的問題,就把設計和開發弄在一起,一個像素一個像素的調嗎?這樣做也沒有什麼問題,但是顯然不是最高效,最可取的方式。

經過和開發童鞋一起研究,雖然容器默認高度是存在的,但是也是有規律可循的。雖然不是百分之百的準確,卻也能保證實際效果和視覺表現效果差不太多。

1. 當字型大小大小為100px-50px時,Textview的默認高度要比實際像素高出16px 。

2. 當字型大小大小為40px-10px時,Textview的默認高度要比實際像素高12px 。

鑒於這樣的情況,當遇到字型大小偏大的頁面時,開發童鞋可以自己調整相應的像素點,而不用再和設計一起,一點一點的挪,一點一點的改,省時又省事。

其實,除非是字型大小非常大,或者是頁面必須一屏顯示的情況下,才有調整的必要。

一般情況下,如果字型大小偏小,或者不需要整屏顯示時,就不需要再進行外額調整了。

有的童鞋可能會說,如果不進行調整的話,可能會出現文字顯示不全,上半部分或者是下半部分出現殘缺的問題。

對於這種情況,是可以在標註上下些功夫的。只要你不標註整個區域模塊的固定大小,而是標註各控制項之間的相對距離。這樣的事情就不會發生。

如上圖所示,你並不需要標註黃色矩形框的固定高度位置,直接給出相互間的間距高度,文字屬性等就OK了。

標註相對距離,對於直接用iOS稿適配Android平台的童鞋來說,也具有重大的意義。

寫在最後,邊工作,邊思考,總有一種方式適合你。


推薦閱讀:

大連外國語MTI翻碩經驗帖
【經驗帖】四戰司考,在職非法本417飛過!
不喜歡韓語的韓語學習經驗
兩年BMS開發經驗的關於BMS系統的思考和總結

TAG:用戶界面設計 | 設計 | 學習經驗 |