91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android如何解決字符對齊問題

發布時間:2023-03-01 11:18:59 來源:億速云 閱讀:120 作者:iii 欄目:開發技術

這篇文章主要講解了“Android如何解決字符對齊問題”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Android如何解決字符對齊問題”吧!

基礎概念

首先回顧一些基礎的東西。

1字節是8位,所以1字節能有256種組合,說到這個,就能聯系出ASCII碼,ASCII碼都熟吧,就是數字和字母啊這些。然后ASCII碼的定義的符號,是沒有到256的,這個也很容易理解,去看看ASCII碼的表就知道了。所以,ASCII碼中的符號,都能用1個字節表示。

但是你的漢字是沒辦法用256表示的,我們中華文化博大精深,不是區區256能容納得下的。所以漢字得用2個字節表示,甚至3個字節表示。然后emoji好像是要占3個字節還是4個字節得,這個我記得不太清了。而且不同的編碼占的也不同。

半角和全角

這個相信大家也有點了解,我們平時用輸入法的時候就能進行半角全角的切換。

簡單來說,全角em是指一個字符占用兩個標準字符位置,半角en是指一個字符占用一個標準字符的位置。注意這里說的是占多少的位置,和上面提的字節沒關系,不是說你2個字節就占2個位置,1個字節只占一個位置。

但是一般半角和圓角都是針對ASCII碼里面的符號的(這個我沒找到相應的概念,我是根據現象推導的)

所以先來看看直接設置半角和全角的效果

Android如何解決字符對齊問題

上面是半角,下面是全角,能明顯看出來,中文的半角和全角都是占了兩個標準字符的位置,而ASCII碼中的符號,在半角的情況下是占一個,在全角的情況下是占兩個。

漢字是這樣,但是我在找資料的時候看到一個挺有意思的場景。就是日文,因為編碼方式,會出現部分日文的半角效果和全角效果是不同的。

那說到這里,其實你就已經有一個概念了,數字中,每個數字在半角情況下都是占一個字符(我這里說占一個坑位可能會更好理解),默認變量輸出都是半角,那兩位數,就占兩個坑位。所以要讓1位數的顯示和兩位數的相同,讓1位數占兩個坑位不就行了嗎,把1位數轉成全角就行了。

Android如何解決字符對齊問題

看我這的效果,藍色的區域就是全角的效果,看得出是比之前好過一些,但也沒辦法完全等于兩個半角數字的寬度,還是差了點意思。

空格

除了用半角全角的思路去處理,還有辦法嗎?當然有了,發揮想象力想想,要實現1位數和2位數對齊,我可以給1位數的兩邊加上空格,不就行了嗎,所以這空格也是有講究滴。

我們可以來看看Unicode中有哪些空格(只列舉部分):

  • U+0020:ASCII空格

  • U+00A0:不間斷空格

  • U+2002:EN空格

  • U+2003:EM空格

  • U+2004:?EM空格

  • U+2005:¼EM空格

  • U+2006:?EM空格

  • U+2007:數字空格

  • U+2009:窄空格

  • U+3000:文字空格

如果先了解了半角你就知道什么是en,什么是em,看這些的時候也會更有感覺。那這么多空格,我怎么知道哪個合適?那合不合適,試試不就知道了嗎,這不就和談女朋友一樣,去試試嘛

Android如何解決字符對齊問題

首先看到ASCII空格是合適的,會不會有人看到這里有答案就跑了 ,然后還有幾個看著也相近,我們可以單獨拿出來比一下。U+2004、U+2005和U+2009

Android如何解決字符對齊問題

發現都不合適,那這個代碼具體要怎么加呢,其實也很簡單,直接寫\u0020就行,比如我這里的布局就是這樣

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@color/blue"
    android:textColor="#000000"
    android:text="\u00206\u0020"
    android:textSize="26sp"
    />

其它

上面都是通過編碼的方向去解決這個問題,那還有其它方式嗎?當然又有,其實一開始就有人想說了,用幾個textview去拼接,然后設置數字的textview固定寬度并且內容居中。

這當然可以。比如“倒計時30秒”這段文字,拆成3個textview,讓第二個textview固定寬度并且內容居中,也能實現這個效果,但是這實現方式也太......,所以需要去探索不同的方式去處理。

那繪制可以嗎,我不用textview,我自定義一個view然后畫上去,我自己畫的話能很好把控各種細節的處理。我倒是覺得這是一個好的主意。這是通過繪制的方式去解決這個問題。

所以從這里可以看出,其實解決這個問題的方式有很多,可以從不同的角度去處理。

感謝各位的閱讀,以上就是“Android如何解決字符對齊問題”的內容了,經過本文的學習后,相信大家對Android如何解決字符對齊問題這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

浪卡子县| 上犹县| 昌黎县| 南溪县| 遂平县| 沙洋县| 怀远县| 沧源| 上饶市| 屏边| 江永县| 元氏县| 佛坪县| 玉环县| 卫辉市| 金堂县| 和田县| 克山县| 乡宁县| 上蔡县| 邵武市| 大埔县| 恩施市| 开阳县| 千阳县| 彭山县| 潮安县| 无棣县| 潜山县| 永宁县| 扎赉特旗| 廊坊市| 长白| 临桂县| 高安市| 磴口县| 平遥县| 丹巴县| 通州市| 丘北县| 建昌县|