前言
不曉得你們有沒有遇過這種狀況:
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_vertical" android:drawableRight="@mipmap/arrow" android:text="免費註冊取得更多功能"/>
在 TextView 的屬性設定了 android:gravity="center_vertical"
,
結果一旁的 Drawable 卻沒有置中對齊,變成這樣:
TextView 總是對不齊 Drawable
這是因爲字型設計時,文字會有筆畫延伸高度:
上延筆畫(ascender)
下延筆畫(descender)
而 Android 會針對這兩個高度去畫額外的留白空間,
此時就會導致視覺上文字無法跟圖片垂直置中。
設計師看到就會訐譙你這跟他畫的 mockup 不一樣。
解決方法
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_vertical" android:drawableRight="@mipmap/arrow" android:includeFontPadding="false" android:text="免費註冊取得更多功能"/>
設定 android:includeFontPadding="false"
這項屬性,
先來看看 Android 官方文件如何說明這項設定:
Leave enough room for ascenders and descenders instead of using the font ascent and descent strictly. (Normally true).
預設為 true,此時會連同額外的留白空間一起畫,
也就是說,當屬性設定為 false 時,
應可預期那些額外的留白會消失,
讓 TextView 的 Drawable 可以垂直置中對齊 。
參考資料
字型搭配攻略:造型篇
日常生活中總能看見跨語言字型的搭配,例如車站內的指示牌、百貨公司的顧客需知、產品包裝等。把字放在一塊不是難事,但如何搭配,呈現終極目標──和諧,融合度(consistency)與協調性(harmony)兼備,絕對是一門得好好思考的學問。而了...
字型設計自己來|英文字型設計的第一課
這是字嗨社長 But 撰寫的一系列字型設計方法,包含英文與中文,推薦各位字型設計的有志之士從此開始學習。閱讀系列文章「字型設計自己來」 在開始字型製作之前,可以先認識一些字型設計 …
留言列表