導航:首頁 > 操作系統 > android文字垂直居中

android文字垂直居中

發布時間:2023-08-27 18:44:05

A. [android][canvas中drawText繪制文字垂直方向居中]

由於要實現類似注冊表單一樣,文字作用兩端對齊的效果如下圖1,所以才有下面的內容。悄信

在canvas中,調用drawText繪畫文隱運困字的時候,希望能夠在垂直方向居中畫出文字。所以需要測量出要繪畫的文字的高。但具體來說,也不是獲取文字的高,因為如果要垂直居中畫出文字,就必須拿到文字的baseline,於是在網上搜索,找到了一篇關於獲取baseline的文章(文章鏈接在本文底部列出),感覺就是我想要的,但是基於要懷疑一切的態度,不能你說是什麼就是什麼的,實踐才是檢驗真理的唯一標准,所以下面我們來驗證一下幾個觀點。

首先可以明確,5個位置分別是灶念top,ascent,baseline,descent,bottom。這五個位置受字型大小的大小影響是毋庸置疑的,這里不再討論。這里驗證了一下字體對五個位置的影響。字型大小默認是16,字體分別是系統默認,行書,小篆,方正姚體:
這5個位置分別用5條不同顏色的橫線條展示

從效果看,字體對top,ascent,baseline,descent,bottom的位置影響並不明顯。

通過Log列印的日誌可以得出結果

結果:以baseline為基準線,向上為負,向下為正是正確的。

這個不是驗證了,說了那麼多也就是為了如何在垂直方向居中繪制文字,關鍵在於獲取baseline位置。Canvas中的drawText中繪制文字的基準線是baseline。

使得ascent到View的是上邊距與descent到View下邊距距離一致即可,此段距離加上ascent的絕對值(-ascent)即為baseline的位置。

在Canvas中使用drawText繪制垂直居中文字的關鍵在於求出baseline的位置。獲取位置的公式:

https://github.com/lgygg/MeasureHeight

http://blog.csdn.net/su1216/article/details/46900617#

B. Android文字圖片無法居中對齊的三個解決方法

在一些項目中會碰到文字和圖片無法居中,即使採用flex或絕對定位(top:-50%, tranform:translateY(50%)仍然無法解決。

這個問題的根本原擾改因在於Android對大部分的非sans-serif字體支持不友好,如Helvetica,導致文字在組件內部(如span,label)就不居中。
文字在組件內部都不居中了,自然在外面怎麼處理都是無法對齊了。

但是sans-serif和helvetica字體的顏色是不一樣的,所以困困可以增加一個透明度opacity為0.8會比較接近helvetica了緩尺判,故最終的方案是

Android瀏覽器下line-height垂直居中為什麼會偏離? - 周祺的回答 - 知乎

C. android中textview控制項中的文字的位置是如何調整

有2種方法可以設置TextView文字居中:x0dx0a一:在xml文件設置:android:gravity="center"x0dx0a二:在程序中設置:m_TxtTitle.setGravity(Gravity.CENTER);x0dx0ax0dx0a備註:android:gravity和android:layout_gravity的區別在於前者對控制項內部操作,後者是對整個控制項操作。x0dx0a例如:x0dx0aandroid:gravity="center"是對textView中文字居中x0dx0aandroid:layout_gravity="center"是對textview控制項在整個布局中居中x0dx0a其實很容易理解簡念,出現"layout"就是控制項對整個布局的操作x0dx0ax0dx0aTextView文字垂直攔悉困靠左居中,x0dx0ax0dx0a設置android:gravity="center_vertical|left"。x0dx0ax0dx0aandroid:gravity="center", 垂直水平居中x0dx0aLinearLayout有兩個非常相似的屬性:android:gravity與android:layout_gravity。他們的區別陸行在於:android:gravity用於設置View組件的對齊方式,而android:layout_gravity用於設置Container組件的對齊方式。x0dx0a舉個例子,我們可以通過設置android:gravity="center"來讓EditText中的文字在EditText組件中居中顯示;同時我們設置EditText的android:layout_gravity="right"來讓EditText組件在LinearLayout中居中顯示。x0dx0a

閱讀全文

與android文字垂直居中相關的資料

熱點內容
r1234yf汽車空調壓縮機 瀏覽:143
ftp伺服器地址欄 瀏覽:898
linux圖形分區 瀏覽:963
安徽到遼寧源碼 瀏覽:575
libs安卓的文件夾叫什麼 瀏覽:869
生意圈app是什麼意思 瀏覽:395
linuxarcgisserver 瀏覽:234
加密pdf怎麼修改文件 瀏覽:138
紅米刷機無命令怎麼辦 瀏覽:356
啥叫美國谷歌外包程序員 瀏覽:260
雲伺服器管家婆 瀏覽:440
發郵件命令 瀏覽:354
程序員好做嗎工作好嗎 瀏覽:886
雲電腦伺服器維護一個月多少錢 瀏覽:882
有沒有什麼app數學題型較多 瀏覽:341
政策pdf 瀏覽:295
有什麼好玩的文娛app 瀏覽:811
python教學合集 瀏覽:959
有什麼好用的小眾app嗎 瀏覽:118
芋道app源碼 瀏覽:448