日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

android 强制竖排,[Android]实现文字竖排

發(fā)布時(shí)間:2023/12/20 Android 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 强制竖排,[Android]实现文字竖排 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

最終效果:文字豎排,英文字母是橫著的,中文字是豎的,如下圖

豎排中英混合.PNG

分析:英文是一個(gè)完整的單詞旋轉(zhuǎn)了90度,中文一字一行

思路:

要放textview的地方用LinearLayout占位,方向是豎向,等待放入textview

遍歷要顯示的字符串,按照字符順序分割成英文和中文的字符組

中文字符組裝進(jìn)橫向textview,設(shè)置為一個(gè)字一行;英文字符組裝進(jìn)豎向textview

按照順序放進(jìn)LinearLayout

代碼

填充textview的部分沒有寫,可以參考上面的鏈接和google。

將來有時(shí)間再寫成自定義控件。

xml:

android:orientation="vertical"/>

java:

int CHAR_TYPE_H = 0; // 需要一字一行的橫向文字類型,中文或其它語種,看具體業(yè)務(wù)

int CHAR_TYPE_V = 1; // 需要豎向的文字類型,英文,可能有的需求也會包含數(shù)字等

Map strMap = new LinkedHashMap(); // 存儲字符組,要選擇有序容器,保留字符串中原本的字符順序

public void initialView() {

char[] chars = str.toCharArray();

StringBuilder s = new StringBuilder();

int lastCharType = CHAR_TYPE_H; // 上一個(gè)字符的類型,這里設(shè)置默認(rèn)值

int currentCharType = CHAR_TYPE_H; // 記錄遍歷時(shí)字符的類型,這里設(shè)置默認(rèn)值

for(int i = 0; i < chars.length; i++) {

// 判斷當(dāng)前字符的類型

if(Character.isDigit(chars[i]) || Character.isLetter(chars[i])) {

currentCharType = CHAR_TYPE_V;

} else {

currentCharType = CHAR_TYPE_H;

}

// 是否與上一個(gè)字符類型相同,如果不同則截?cái)?#xff0c;形成字符組,如果相同則不做處理

if (i != 0 && currentCharType != lastCharType) {

strMap.put(s.toString(), currentCharType);

s = new StringBuilder();

} else {

s.append(chars[i]);

}

// 更新lastCharType

lastCharType = currentCharType;

}

// 把每個(gè)字符組形成textview,填充進(jìn)容器(即上文的linearlayout)

// 具體方法參考上文鏈接,此處省略

for (Map.Entry entry : strMap.entrySet()) {

String s1 = entry.getKey();

Integer type = entry.getValue();

if (type == CHAR_TYPE_H) {

// 形成橫向一字一行的textview

} else {

// 形成縱向顯示的textview

}

linearLayout.addView(textView);

}

}

最好做成自定義控件,重復(fù)使用簡單省事。

有任何疑問,歡迎共同討論。

總結(jié)

以上是生活随笔為你收集整理的android 强制竖排,[Android]实现文字竖排的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。