BidiFormatter 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
公用程式類別,用於格式化文字,以在可能相反的方向性內容中顯示,而不需加碼。
[Android.Runtime.Register("android/text/BidiFormatter", DoNotGenerateAcw=true)]
public sealed class BidiFormatter : Java.Lang.Object
[<Android.Runtime.Register("android/text/BidiFormatter", DoNotGenerateAcw=true)>]
type BidiFormatter = class
inherit Object
- 繼承
- 屬性
備註
公用程式類別,用於格式化文字,以在可能相反的方向性內容中顯示,而不需加碼。 內容的方向性是在建立格式器時設定,而且文字的方向性可以在已知時估計或傳入。
若要支援低於 android.os.Build.VERSION_CODES#JELLY_BEAN_MR2
的版本,您可以使用支援程式庫的 androidx.core.text.BidiFormatter
類別。
這些 API 提供下列功能:
1. Bidi Wrapping 當某個語言中的文字混合成另一個相反方向語言的檔時,例如,當英文商務名稱內嵌在某些希伯來文文字時,插入的字串及其周圍的文字,除非插入的字串明確與「包裝函式」 中的周圍文字分開,否則可能會不正確顯示:
- 宣告其方向性,以便正確顯示字串。 這可以在 Unicode bidi 格式化程式碼中完成 #unicodeWrap
,方法是和類似的方法。
- 隔離字串的方向性,因此不會不小心影響周圍的內容。 目前,除了上述方向性宣告之外,只能使用與內容 (LRM 或 RLM) 相同方向的不可見 Unicode 字元來完成,因此「重設」內容的方向性。 可能需要在字串的兩端完成「重設」。 如果沒有在字串之後「重設」,即使以空格和標點符號) 等中性內容分隔,字串仍會「貼上」數位或以邏輯方式分隔的相反方向 (文字, 在字串之前若沒有 「重設」,就可能發生相同的情況,但只會使用更相反方向的文字,而不是數位。 其中一種方法是「重設」每個字串之後的方向,理論上,如果上述相反方向文字本身是 bidi 包裝的,則之後的「重設」會防止黏附。 (只有在每個字串之前執行「重設」一定無法運作,因為我們不想要求 bidi 包裝數位,而且 bidi 包裝的相反方向字串可能後面接著數位。) 仍然安全的原則是在每一個字串的兩端執行「重設」,因為 RTL 訊息翻譯通常包含未轉譯的拉丁腳本品牌名稱和技術詞彙。 和其中一個可以後面接著 bidi 包裝的插入值。 另一方面,當訊息有這類訊息時,最好是在郵件翻譯本身手動執行「重設」,因為訊息的相反方向文字後面可能會接著插入的數位,我們仍然不會自動換行。 因此,只有在字串是目前的預設值之後,才會「重設」。 除了「重設」之外,HTML、CSS 和 Unicode 標準的最近新增專案允許隔離成為方向性宣告的一部分。 這種隔離形式比「重設」更好,因為它需要較少的空間、不需要知道內容方向性、具有比「重設」更好的效果,並保護字串的兩端。 不過,我們尚未允許使用它,因為必要的平臺尚未支援它。
提供這些包裝服務是 bidi 格式器的基本用途。
2.方向性估計 如何知道即將插入周圍文字的字串是否具有相同方向性? 在許多情況下,其中一個知道撰寫程式碼執行插入時,這必須是這種情況,例如,將當地語系化的訊息插入當地語系化頁面時。 在這種情況下,完全不需要牽涉到 bidi 格式器。 在某些其他情況下,它不需要與內容相同,但是常數 (例如 URL 一律是 LTR) 或已知。 在其餘情況下,例如,當使用者輸入字串或來自資料庫時,字串的語言 (,因此其方向性) 未知,而且必須在執行時間估計。 bidi 格式器可以使用預設的第一個強式估計演算法自動執行這項操作。 它也可以設定為使用自訂方向性估計物件。
的 android.text.BidiFormatter
JAVA 檔。
此頁面的部分是根據所建立和共用的工作進行修改,並根據 2.5 屬性授權中所述的詞彙來使用。
屬性
Class |
傳回這個 |
Handle |
基礎 Android 實例的控制碼。 (繼承來源 Object) |
Instance |
用於建立預設地區設定方向之 BidiFormatter 實例的 Factory。 |
IsRtlContext | |
JniIdentityHashCode |
公用程式類別,用於格式化文字,以在可能相反的方向性內容中顯示,而不需加碼。 (繼承來源 Object) |
JniPeerMembers |
公用程式類別,用於格式化文字,以在可能相反的方向性內容中顯示,而不需加碼。 |
PeerReference |
公用程式類別,用於格式化文字,以在可能相反的方向性內容中顯示,而不需加碼。 (繼承來源 Object) |
StereoReset | |
ThresholdClass |
此 API 支援適用于 Android 的 Mono 基礎結構,並不適合直接從您的程式碼使用。 (繼承來源 Object) |
ThresholdType |
此 API 支援適用于 Android 的 Mono 基礎結構,並不適合直接從您的程式碼使用。 (繼承來源 Object) |
方法
Clone() |
建立並傳回這個 物件的複本。 (繼承來源 Object) |
Dispose() |
公用程式類別,用於格式化文字,以在可能相反的方向性內容中顯示,而不需加碼。 (繼承來源 Object) |
Dispose(Boolean) |
公用程式類別,用於格式化文字,以在可能相反的方向性內容中顯示,而不需加碼。 (繼承來源 Object) |
Equals(Object) |
指出其他物件是否「等於」這個物件。 (繼承來源 Object) |
GetHashCode() |
傳回此物件的雜湊碼值。 (繼承來源 Object) |
GetInstance(Boolean) |
在內容方向性下建立 BidiFormatter 實例的 Factory。 |
GetInstance(Locale) |
在內容地區設定下建立 BidiFormatter 實例的 Factory。 |
IsRtl(ICharSequence) |
運作方式類似 |
IsRtl(String) |
使用預設文字方向啟發學習法來估計字串的方向。 |
JavaFinalize() |
當垃圾收集判斷物件不再參考物件時,垃圾收集行程會在物件上呼叫。 (繼承來源 Object) |
Notify() |
喚醒正在等候此物件監視器的單一線程。 (繼承來源 Object) |
NotifyAll() |
喚醒正在等候此物件監視器的所有線程。 (繼承來源 Object) |
SetHandle(IntPtr, JniHandleOwnership) |
設定 Handle 屬性。 (繼承來源 Object) |
ToArray<T>() |
公用程式類別,用於格式化文字,以在可能相反的方向性內容中顯示,而不需加碼。 (繼承來源 Object) |
ToString() |
傳回物件的字串表示。 (繼承來源 Object) |
UnicodeWrap(String) |
運作方式類似 |
UnicodeWrap(String, Boolean) |
運作方式類似 |
UnicodeWrap(String, ITextDirectionHeuristic) |
運作方式類似 |
UnicodeWrap(String, ITextDirectionHeuristic, Boolean) |
運作方式類似 |
UnicodeWrapFormatted(ICharSequence) |
運作方式類似 |
UnicodeWrapFormatted(ICharSequence, Boolean) |
運作方式類似 |
UnicodeWrapFormatted(ICharSequence, ITextDirectionHeuristic) |
運作方式類似 |
UnicodeWrapFormatted(ICharSequence, ITextDirectionHeuristic, Boolean) |
運作方式類似 |
UnregisterFromRuntime() |
公用程式類別,用於格式化文字,以在可能相反的方向性內容中顯示,而不需加碼。 (繼承來源 Object) |
Wait() |
讓目前的執行緒等到喚醒為止,通常是 em < notified/em > 或 < em > interrupted < /em > 。 >< (繼承來源 Object) |
Wait(Int64) |
讓目前的執行緒等到喚醒為止,通常是 em < notified/em > 或 < em > interrupted < /em > ,或直到經過一定數量的即時為止。 <> (繼承來源 Object) |
Wait(Int64, Int32) |
讓目前的執行緒等到喚醒為止,通常是 em < notified/em > 或 < em > interrupted < /em > ,或直到經過一定數量的即時為止。 <> (繼承來源 Object) |
明確介面實作
IJavaPeerable.Disposed() |
公用程式類別,用於格式化文字,以在可能相反的方向性內容中顯示,而不需加碼。 (繼承來源 Object) |
IJavaPeerable.DisposeUnlessReferenced() |
公用程式類別,用於格式化文字,以在可能相反的方向性內容中顯示,而不需加碼。 (繼承來源 Object) |
IJavaPeerable.Finalized() |
公用程式類別,用於格式化文字,以在可能相反的方向性內容中顯示,而不需加碼。 (繼承來源 Object) |
IJavaPeerable.JniManagedPeerState |
公用程式類別,用於格式化文字,以在可能相反的方向性內容中顯示,而不需加碼。 (繼承來源 Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
公用程式類別,用於格式化文字,以在可能相反的方向性內容中顯示,而不需加碼。 (繼承來源 Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
公用程式類別,用於格式化文字,以在可能相反的方向性內容中顯示,而不需加碼。 (繼承來源 Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
公用程式類別,用於格式化文字,以在可能相反的方向性內容中顯示,而不需加碼。 (繼承來源 Object) |
擴充方法
JavaCast<TResult>(IJavaObject) |
執行 Android 執行時間檢查的類型轉換。 |
JavaCast<TResult>(IJavaObject) |
公用程式類別,用於格式化文字,以在可能相反的方向性內容中顯示,而不需加碼。 |
GetJniTypeName(IJavaPeerable) |
公用程式類別,用於格式化文字,以在可能相反的方向性內容中顯示,而不需加碼。 |