專利名稱:一種移動終端的快速文字排版方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種排版方法,尤其是一種移動終端的快速文字排版方法,屬于通訊 技術(shù)領(lǐng)域。
背景技術(shù):
近年來,各種各樣的移動終端迅速普及,移動終端的屏幕尺寸越來越大,造價越來 越低?!伴喿x”作為人們?nèi)粘9ぷ?、生活、學(xué)習(xí)過程中一個十分普遍的活動也越來越多地在移 動終端上開展起來。移動終端上的閱讀活動有許多優(yōu)點——受時間地點的影響很小,可以 隨時進(jìn)行;不需要使用者背著沉重的書本便可讀書破萬卷;也可以讓使用者利用電子文檔 的先進(jìn)功能,進(jìn)行檢索,批注等操作??偠灾?,移動設(shè)備上的文本瀏覽需求隨著時間的推 移越來越大。然而,由于移動設(shè)備目前普遍采用的是ARM架構(gòu)的CPU,這種CPU的設(shè)計理念是低 功耗、節(jié)能性好,所以采用了精簡指令集(RISC)技術(shù),并且絕大部分現(xiàn)在手持設(shè)備所采用 的ARM架構(gòu)CPU都不具有硬件浮點運算能力,單靠操作系統(tǒng)和基礎(chǔ)架構(gòu)庫執(zhí)行的浮點運算, 執(zhí)行效率不及普通桌面電腦的一百分之一。由于對手持設(shè)備屏幕進(jìn)行排版時候用到的最頻 繁的字體測寬操作基于向量運算和浮點運算,所以目前絕大多數(shù)移動設(shè)備上運行的電子閱 讀等類似程序,在文字排版方面存在執(zhí)行提高效率偏低的問題。對大段文字進(jìn)行排版,尤其 是比英文字符形狀更為復(fù)雜比劃更為多樣的中文字體進(jìn)行排版,現(xiàn)有技術(shù)方案普遍存在明 顯的性能瓶頸。檢索發(fā)現(xiàn),申請?zhí)枮镃N200810009074. 6的中國專利公開了一種手寫體信息快速 編輯排版方法和編輯符的識別方法,該方法可以使編輯過程中輸入的編輯符識別準(zhǔn)確、高 效、識別錯誤率低,但并不適用于解決上述移動終端的問題。
發(fā)明內(nèi)容
本發(fā)明的目的在于提出一種可以顯著提高執(zhí)行效率和顯示速度的移動終端的快 速文字排版方法,從而更好地滿足移動終端客戶的閱讀需求。為了達(dá)到以上目的,本發(fā)明移動終端的快速文字排版方法包括以下步驟步驟一、選定顯示文字字型和對應(yīng)的字高值,以及顯示區(qū)域的高度值和寬度值;步驟二、借助寬度函數(shù)得出漢字“一”對應(yīng)選定字型的單字寬度以及各ASCII碼的 碼符寬度;步驟三、判斷待排版字符串的第一個字符屬性,如果是漢字,則以單字寬度作為其 顯示寬度;如果是ASCII碼,則以對應(yīng)ASCII碼的碼符寬度作為其顯示寬度;步驟四、將判斷后的字符追加到當(dāng)前顯示字符串的尾部,并刪除待排版字符串中 的該字符;步驟五、將當(dāng)前顯示字符串中各字符的顯示寬度累加,得到當(dāng)前顯示行寬;步驟六、比較當(dāng)前顯示行寬是否大于顯示區(qū)域?qū)挾戎担绶駝t返回步驟三,如是則進(jìn)行下一步;步驟七、追加新顯示行,并判斷顯示行數(shù)與字高值之積是否大于顯示區(qū)域的高度 值,如否,則返回步驟三,如是則進(jìn)行下一步;步驟八、完成待排版字符串在顯示區(qū)域的排版。上述步驟三中的判斷條件通常為如果字符串編碼的字符值介于+U 4E00和+U 9FBF之間則為漢字,小于+U 0080則為ASCII碼。本發(fā)明合理考慮到漢字寬度相等的特點,以一次測得的漢字寬度用于所有漢字寬 度檢測,因此節(jié)省了系統(tǒng)應(yīng)用程序接口調(diào)用的次數(shù),從而使在中文比率極高的排版過程節(jié) 省了 90%以上的系統(tǒng)函數(shù)調(diào)用,顯著減少了調(diào)用函數(shù)所需的上下文切換時間。并且由于不 需要進(jìn)行浮點運算,在嵌入式、手持等移動終端上進(jìn)行處理的速度也大大加快??傊景l(fā)明可以使文字排版速度可以得到顯著提高,在大屏幕多文字的移動設(shè) 備上效果更明顯;同時,因為使用了更少查詢和比較次數(shù)達(dá)到了相同的效果,CPU運算次數(shù) 和內(nèi)存訪問次數(shù)得到了節(jié)省,從而讓相同電量的電池可以I作更長時間。
下面結(jié)合附圖對本發(fā)明作進(jìn)一步的說明。圖1為本發(fā)明一個實施例的結(jié)構(gòu)示意圖。
具體實施例方式實施例一本實施例移動終端的快速文字排版方法需要排版如下文字“和諧號是中華人民 共和國鐵道部對中國鐵路高速(CRH)動車組,及部份交流傳動電力機車、柴油機車系列的 統(tǒng)稱。鐵道部發(fā)言人張曙光稱,這個名字是代表了科學(xué)發(fā)展觀中“人與自然的和諧”的原則, 動車組除了比傳統(tǒng)由機車牽引的列車、以及推拉式列車節(jié)能、環(huán)保外,還需要多個不同單位 攜手合作共同研制,代表技術(shù)上的協(xié)調(diào)?!迸虐娌襟E如下(參見圖1)1、默認(rèn)選擇(或臨時人為選擇)確定顯示文字字型為黑體,對應(yīng)的字高值為16像 素高的系統(tǒng)字體,顯示區(qū)域的寬度值和高度值為120X240像素的矩形區(qū)域;2、使用應(yīng)用程序編程接口 API 的 J2ME 平臺中 javax. microedition. lcdui. Font. stringffidthO函數(shù),得出漢字“一”對應(yīng)選定字型的單字寬度以及各ASCII碼的碼符寬度, 此時值為16 ;3、根據(jù)字符串編碼的字符值介于+U 4E00和+U 9FBF之間,還是小于+U 0080,判 斷待排版字符串的第一個字符屬性為漢字,還是ASCII碼,如果是漢字,則以單字寬度作為 其顯示寬度;如果是ASCII碼,則以對應(yīng)ASCII碼的碼符寬度作為其顯示寬度(用上述寬度 函數(shù)可以測出1 個ASCII碼的寬度,分別保存);由于要排版的第一個字符為“和”,因此 其寬度值為16 ;4、將判斷后的字符追加到當(dāng)前顯示字符串的尾部,第一次“追加”由于當(dāng)前顯示字 符串無信息,因此直接排在第一位,之后刪除待排版字符串中的該字符;5、將當(dāng)前顯示字符串中各字符的顯示寬度累加,得到當(dāng)前顯示行寬;6、比較當(dāng)前顯示行寬是否大于顯示區(qū)域?qū)挾戎?,如否則返回步驟3,如是則進(jìn)行下一步;本實施例在將“和”排版后,將多次返回步驟3,在分別將“諧”、“號”、“是”、“中”、“華”、 “人”字做相同的處理后,當(dāng)前顯示行寬達(dá)到7X16 = 112;由于在排“民”時,當(dāng)前顯示行寬 將為112+16 = 128 >顯示區(qū)域?qū)挾戎?20,因此需要進(jìn)入下一步;7、追加新顯示行,并判斷顯示行數(shù)與字高值之積是否大于顯示區(qū)域的高度值,如 否,則返回步驟3,如是則進(jìn)行下一步;8、完成待排版字符串在顯示區(qū)域的排版,進(jìn)入下一版面。實踐證明,采用本實施例的方法后,對中文文字的排版速度比現(xiàn)有技術(shù)提速20倍 以上,耗電(CPU計算資源消耗)情況也有顯著改善。由此可見,有益效果十分明顯。除上述實施例外,本發(fā)明還可以有其他實施方式。凡采用等同替換或等效變換形 成的技術(shù)方案,均落在本發(fā)明要求的保護(hù)范圍。
權(quán)利要求
1.一種移動終端的快速文字排版方法,其特征在于包括以下步驟步驟一、選定顯示文字字型和對應(yīng)的字高值,以及顯示區(qū)域的高度值和寬度值; 步驟二、借助寬度函數(shù)得出漢字“一”對應(yīng)選定字型的單字寬度以及各ASCII碼的碼符 寬度;步驟三、判斷待排版字符串的第一個字符屬性,如果是漢字,則以單字寬度作為其顯示 寬度;如果是ASCI工碼,則以對應(yīng)ASCII碼的碼符寬度作為其顯示寬度;步驟四、將判斷后的字符追加到當(dāng)前顯示字符串的尾部,并刪除待排版字符串中的該 字符;步驟五、將當(dāng)前顯示字符串中各字符的顯示寬度累加,得到當(dāng)前顯示行寬; 步驟六、比較當(dāng)前顯示行寬是否大于顯示區(qū)域?qū)挾戎?,如否則返回步驟三,如是則進(jìn)行 下一步;步驟七、追加新顯示行,并判斷顯示行數(shù)與字高值之積是否大于顯示區(qū)域的高度值,如 否,則返回步驟三,如是則進(jìn)行下一步;步驟八、完成待排版字符串在顯示區(qū)域的排版。
2.根據(jù)權(quán)利要求1所述的移動終端的快速文字排版方法,其特征在于所述步驟三中 的判斷條件為如果字符串編碼的字符值介于+U4E00和+U 9FBF之間則為漢字,小于+U 0080則為ASCI工碼。
3.根據(jù)權(quán)利要求1所述的移動終端的快速文字排版方法,其特征在于所述寬度函數(shù) 為應(yīng)用程序編程接 口 API 的 J2ME 平臺中 javax. microedition. lcdui. Font, stringffidth ()函數(shù)。
全文摘要
本發(fā)明涉及一種移動終端的快速文字排版方法,屬于通訊技術(shù)領(lǐng)域。該方法包括選定字型和字高值以及顯示區(qū)域高、寬度值;得出單字寬度以及各ASCII碼的碼符寬度;判斷字符串的第一個字符屬性后確定其顯示寬度;將判斷后的字符追加到當(dāng)前顯示字符串的尾部,并刪除待排版字符串中的該字符;將當(dāng)前顯示字符串中各字符的顯示寬度累加,得到當(dāng)前顯示行寬;比較當(dāng)前顯示行寬是否大于顯示區(qū)域?qū)挾戎?,決定是否追加新顯示行,并判斷顯示行數(shù)與字高值之積是否大于顯示區(qū)域的高度值,以決定是否完成待排版字符串在顯示區(qū)域的排版。本發(fā)明可以使文字排版速度可以得到顯著提高,讓相同電量的電池可以工作更長時間。
文檔編號G06F17/21GK102063413SQ20101059091
公開日2011年5月18日 申請日期2010年12月15日 優(yōu)先權(quán)日2010年12月15日
發(fā)明者葉逸飛, 李翰飛, 陳崧 申請人:掌富科技(南京)有限公司