Sprache

Bidi Klasse

Definition

<h2>Bidi-Algorithmus für ICU</h2>

        This is an implementation of the Unicode Bidirectional Algorithm.
[Android.Runtime.Register("android/icu/text/Bidi", ApiSince=29, DoNotGenerateAcw=true)]
public class Bidi : Java.Lang.Object
[<Android.Runtime.Register("android/icu/text/Bidi", ApiSince=29, DoNotGenerateAcw=true)>]
type Bidi = class
    inherit Object
Vererbung
Attribute

Hinweise

<h2>Bidi-Algorithmus für ICU</h2>

Dies ist eine Implementierung des bidirektionalen Unicode-Algorithmus. Der Algorithmus wird im Unicode-Standard-Anhang Nr. 9 definiert.

Hinweis: Bibliotheken, die einen bidirektionalen Algorithmus ausführen und Zeichenfolgen entsprechend neu anordnen, werden manchmal als "Storage Layout Engines" bezeichnet. ICU-Klassen Bidi und Shaping (ArabicShaping) können im Kern solcher "Storage Layout Engines" verwendet werden.

<h3>Allgemeine Hinweise zur API:</h3>

Das " limit" eine Abfolge von Zeichen ist die Position unmittelbar nach dem letzten Zeichen, d. h. einer mehr als dieser Position.

Einige der API-Methoden bieten Zugriff auf " wird ausgeführt". Eine solche " ausführen" wird als Eine Abfolge von Zeichen definiert, die sich nach dem Ausführen des Bidi-Algorithmus auf derselben Einbettungsebene befinden.

<h3>Grundlegendes Konzept: Absatz</h3> Ein Textteil kann in mehrere Absätze nach Zeichen mit der Bidi-Klasse Block Separatorunterteilt werden. Für die Behandlung von Absätzen siehe: <ul><li>#countParagraphs<li li>#getParaLevel<li>#getParagraph<>#getParagraphByIndex</ul>

<h3>Grundkonzept: Textrichtung</h3> Die Richtung eines Textstücks kann sein: <ul><li>#LTR<li li>#RTL<>#MIXED<li>#NEUTRAL</ul>

<h3>Grundkonzept: Levels</h3>

Ebenen in dieser API stellen Einbettungsebenen gemäß dem Bidirektionalen Unicode-Algorithmus dar. Das Bit mit niedriger Reihenfolge (gerade/ungerade Werte) gibt die visuelle Richtung an.

Ebenen können abstrakte Werte sein, wenn sie für die paraLevel Argumente und embeddingLevels Argumente von setPara(); verwendet werden: <><ul li>das Hochreihenfolge-Bit eines embeddingLevels[] Werts gibt an, ob die verwendete Anwendung die Ebene eines Zeichens angibt, in das die Bidi-Implementierung aufgelöst würde.</li li><>paraLevel kann auf die Pseudoebenenwerte LEVEL_DEFAULT_LTR und .LEVEL_DEFAULT_RTL</li></ul>

Die zugehörigen Konstanten sind keine echten, gültigen Levelwerte. DEFAULT_XXX kann verwendet werden, um eine Standardeinstellung für die Absatzebene anzugeben, für die die setPara() Methode bestimmt werden soll, in der Eingabe jedoch kein stark typisiertes Zeichen vorhanden ist.

Beachten Sie, dass der Wert gerade LEVEL_DEFAULT_LTR ist und der LEVEL_DEFAULT_RTL wert ist ungerade ist, genau wie bei normalen LTR- und RTL-Werten – diese speziellen Werte sind so konzipiert. Außerdem geht die Implementierung davon aus, dass MAX_EXPLICIT_LEVEL ungerade ist.

Hinweis: Die numerischen Werte der zugehörigen Konstanten ändern sich nicht: Sie sind an die Verwendung von 7-Bit-Bytewerten (plus der Überschreibungsbit) und des Byte-Datentyps in dieser API gebunden.

<b>Siehe auch:</b><ul><li>#LEVEL_DEFAULT_LTR<li>#LEVEL_DEFAULT_RTL<li li>#LEVEL_OVERRIDE<li>#MAX_EXPLICIT_LEVEL<>#setPara</ul>

<h3>Grundlegendes Konzept: Neuanordnen des Modus</h3> Neuanordnungsmoduswerte geben an, welche Variante des Bidi-Algorithmus verwendet werden soll.

<b>Siehe auch:</b><ul><li>#setReorderingMode<>#REORDER_DEFAULT<>#REORDER_NUMBERS_SPECIAL<>#REORDER_GROUP_NUMBERS_WITH_R<li>#REORDER_RUNS_ONLY<>#REORDER_INVERSE_NUMBERS_AS_L<>#REORDER_INVERSE_LIKE_DIRECT<>#REORDER_INVERSE_FOR_NUMBERS_SPECIAL</ul>

<h3>Basic-Konzept: Optionen neu anordnen</h3> Neuanordnungsoptionen können während Bidi-Texttransformationen angewendet werden.

<b>Siehe auch:</b><ul><li>#setReorderingOptions<li>#OPTION_DEFAULT<li li>#OPTION_INSERT_MARKS<li>#OPTION_REMOVE_CONTROLS<>#OPTION_STREAMING</ul>

<h4-Beispielcode> für die ICU Bidi-API </h4>

<h5>Rendern eines Absatzes mit der ICU Bidi-API</h5>

Dies ist (hypothetischer) Beispielcode, der veranschaulicht, wie die ICU Bidi-API zum Rendern eines Textabsatzs verwendet werden kann. Das Rendern von Code hängt stark vom Grafiksystem ab, daher muss dieser Beispielcode viele Annahmen treffen, die möglicherweise den Eigenschaften des vorhandenen Grafiksystems entsprechen oder nicht.

Die grundlegenden Annahmen sind:

<ul><li>Rendering erfolgt von links nach rechts in einer horizontalen Linie.</li><Li>Eine Ausführung von einzelformatigem, unidirektionalem Text kann gleichzeitig gerendert werden. </li li><>Eine solche Textausführung wird an das Grafiksystem mit Zeichen (Codeeinheiten) in logischer Reihenfolge übergeben.</li Li><>Der Zeilenumbruchalgorithmus ist sehr kompliziert und gebietsschemaabhängig - daher wird die Implementierung aus diesem Beispielcode weggelassen.</li></ul>

package android.icu.dev.test.bidi;

             import android.icu.text.Bidi;
             import android.icu.text.BidiRun;

             public class Sample {

                 static final int styleNormal = 0;
                 static final int styleSelected = 1;
                 static final int styleBold = 2;
                 static final int styleItalics = 4;
                 static final int styleSuper=8;
                 static final int styleSub = 16;

                 static class StyleRun {
                     int limit;
                     int style;

                     public StyleRun(int limit, int style) {
                         this.limit = limit;
                         this.style = style;
                     }
                 }

                 static class Bounds {
                     int start;
                     int limit;

                     public Bounds(int start, int limit) {
                         this.start = start;
                         this.limit = limit;
                     }
                 }

                 static int getTextWidth(String text, int start, int limit,
                                         StyleRun[] styleRuns, int styleRunCount) {
                     // simplistic way to compute the width
                     return limit - start;
                 }

                 // set limit and StyleRun limit for a line
                 // from text[start] and from styleRuns[styleRunStart]
                 // using Bidi.getLogicalRun(...)
                 // returns line width
                 static int getLineBreak(String text, Bounds line, Bidi para,
                                         StyleRun styleRuns[], Bounds styleRun) {
                     // dummy return
                     return 0;
                 }

                 // render runs on a line sequentially, always from left to right

                 // prepare rendering a new line
                 static void startLine(byte textDirection, int lineWidth) {
                     System.out.println();
                 }

                 // render a run of text and advance to the right by the run width
                 // the text[start..limit-1] is always in logical order
                 static void renderRun(String text, int start, int limit,
                                       byte textDirection, int style) {
                 }

                 // We could compute a cross-product
                 // from the style runs with the directional runs
                 // and then reorder it.
                 // Instead, here we iterate over each run type
                 // and render the intersections -
                 // with shortcuts in simple (and common) cases.
                 // renderParagraph() is the main function.

                 // render a directional run with
                 // (possibly) multiple style runs intersecting with it
                 static void renderDirectionalRun(String text, int start, int limit,
                                                  byte direction, StyleRun styleRuns[],
                                                  int styleRunCount) {
                     int i;

                     // iterate over style runs
                     if (direction == Bidi.LTR) {
                         int styleLimit;
                         for (i = 0; i &lt; styleRunCount; ++i) {
                             styleLimit = styleRuns[i].limit;
                             if (start &lt; styleLimit) {
                                 if (styleLimit &gt; limit) {
                                     styleLimit = limit;
                                 }
                                 renderRun(text, start, styleLimit,
                                           direction, styleRuns[i].style);
                                 if (styleLimit == limit) {
                                     break;
                                 }
                                 start = styleLimit;
                             }
                         }
                     } else {
                         int styleStart;

                         for (i = styleRunCount-1; i &gt;= 0; --i) {
                             if (i &gt; 0) {
                                 styleStart = styleRuns[i-1].limit;
                             } else {
                                 styleStart = 0;
                             }
                             if (limit &gt;= styleStart) {
                                 if (styleStart &lt; start) {
                                     styleStart = start;
                                 }
                                 renderRun(text, styleStart, limit, direction,
                                           styleRuns[i].style);
                                 if (styleStart == start) {
                                     break;
                                 }
                                 limit = styleStart;
                             }
                         }
                     }
                 }

                 // the line object represents text[start..limit-1]
                 static void renderLine(Bidi line, String text, int start, int limit,
                                        StyleRun styleRuns[], int styleRunCount) {
                     byte direction = line.getDirection();
                     if (direction != Bidi.MIXED) {
                         // unidirectional
                         if (styleRunCount &lt;= 1) {
                             renderRun(text, start, limit, direction, styleRuns[0].style);
                         } else {
                             renderDirectionalRun(text, start, limit, direction,
                                                  styleRuns, styleRunCount);
                         }
                     } else {
                         // mixed-directional
                         int count, i;
                         BidiRun run;

                         try {
                             count = line.countRuns();
                         } catch (IllegalStateException e) {
                             e.printStackTrace();
                             return;
                         }
                         if (styleRunCount &lt;= 1) {
                             int style = styleRuns[0].style;

                             // iterate over directional runs
                             for (i = 0; i &lt; count; ++i) {
                                 run = line.getVisualRun(i);
                                 renderRun(text, run.getStart(), run.getLimit(),
                                           run.getDirection(), style);
                             }
                         } else {
                             // iterate over both directional and style runs
                             for (i = 0; i &lt; count; ++i) {
                                 run = line.getVisualRun(i);
                                 renderDirectionalRun(text, run.getStart(),
                                                      run.getLimit(), run.getDirection(),
                                                      styleRuns, styleRunCount);
                             }
                         }
                     }
                 }

                 static void renderParagraph(String text, byte textDirection,
                                             StyleRun styleRuns[], int styleRunCount,
                                             int lineWidth) {
                     int length = text.length();
                     Bidi para = new Bidi();
                     try {
                         para.setPara(text,
                                      textDirection != 0 ? Bidi.LEVEL_DEFAULT_RTL
                                                         : Bidi.LEVEL_DEFAULT_LTR,
                                      null);
                     } catch (Exception e) {
                         e.printStackTrace();
                         return;
                     }
                     byte paraLevel = (byte)(1 &amp; para.getParaLevel());
                     StyleRun styleRun = new StyleRun(length, styleNormal);

                     if (styleRuns == null || styleRunCount &lt;= 0) {
                         styleRuns = new StyleRun[1];
                         styleRunCount = 1;
                         styleRuns[0] = styleRun;
                     }
                     // assume styleRuns[styleRunCount-1].limit&gt;=length

                     int width = getTextWidth(text, 0, length, styleRuns, styleRunCount);
                     if (width &lt;= lineWidth) {
                         // everything fits onto one line

                         // prepare rendering a new line from either left or right
                         startLine(paraLevel, width);

                         renderLine(para, text, 0, length, styleRuns, styleRunCount);
                     } else {
                         // we need to render several lines
                         Bidi line = new Bidi(length, 0);
                         int start = 0, limit;
                         int styleRunStart = 0, styleRunLimit;

                         for (;;) {
                             limit = length;
                             styleRunLimit = styleRunCount;
                             width = getLineBreak(text, new Bounds(start, limit),
                                                  para, styleRuns,
                                                  new Bounds(styleRunStart, styleRunLimit));
                             try {
                                 line = para.setLine(start, limit);
                             } catch (Exception e) {
                                 e.printStackTrace();
                                 return;
                             }
                             // prepare rendering a new line
                             // from either left or right
                             startLine(paraLevel, width);

                             if (styleRunStart &gt; 0) {
                                 int newRunCount = styleRuns.length - styleRunStart;
                                 StyleRun[] newRuns = new StyleRun[newRunCount];
                                 System.arraycopy(styleRuns, styleRunStart, newRuns, 0,
                                                  newRunCount);
                                 renderLine(line, text, start, limit, newRuns,
                                            styleRunLimit - styleRunStart);
                             } else {
                                 renderLine(line, text, start, limit, styleRuns,
                                            styleRunLimit - styleRunStart);
                             }
                             if (limit == length) {
                                 break;
                             }
                             start = limit;
                             styleRunStart = styleRunLimit - 1;
                             if (start &gt;= styleRuns[styleRunStart].limit) {
                                 ++styleRunStart;
                             }
                         }
                     }
                 }

                 public static void main(String[] args)
                 {
                     renderParagraph("Some Latin text...", Bidi.LTR, null, 0, 80);
                     renderParagraph("Some Hebrew text...", Bidi.RTL, null, 0, 60);
                 }
             }

Java Dokumentation für android.icu.text.Bidi.

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Konstruktoren

Name Beschreibung
Bidi()

Zuordnen eines Bidi Objekts.

Bidi(Char[], Int32, Byte[], Int32, Int32, BidiOptions)

Erstellen Sie Bidi aus den angegebenen Text-, Einbettungs- und Richtungsinformationen.

Bidi(IAttributedCharacterIterator)

Erstellen Sie Bidi aus dem angegebenen Textabsatz.

Bidi(Int32, Int32)

Weisen Sie ein Bidi Objekt mit vorinstalliertem Speicher für interne Strukturen zu.

Bidi(IntPtr, JniHandleOwnership)

<h2>Bidi-Algorithmus für ICU</h2>

        This is an implementation of the Unicode Bidirectional Algorithm.
Bidi(String, BidiOptions)

Erstellen Sie Bidi aus dem angegebenen Absatz von Text und Basisrichtung.

Felder

Name Beschreibung
DirectionDefaultLeftToRight
Veraltet.

Konstante, die angibt, dass die Basisrichtung vom ersten starken richtungsgerichteten Zeichen im Text gemäß dem Unicode-Bidirektionalen Algorithmus abhängt.

DirectionDefaultRightToLeft
Veraltet.

Konstante, die angibt, dass die Basisrichtung vom ersten starken richtungsgerichteten Zeichen im Text gemäß dem Unicode-Bidirektionalen Algorithmus abhängt.

DirectionLeftToRight
Veraltet.

Konstante, die angibt, dass die Basisrichtung von links nach rechts ist.

DirectionRightToLeft
Veraltet.

Konstante, die angibt, dass die Basisrichtung von rechts nach links ist.

DoMirroring

option bit for writeReordered(): replace characters with the "mirrored" property in RTL runs by their mirror-image mappings

InsertLrmForNumeric

option bit for writeReordered(): surround the run with LRMs if necessary; dies ist Teil des ungefähren "inverse Bidi"-Algorithmus

KeepBaseCombining

option bit for writeReordered(): keep combining characters after their base characters in RTL runs

LevelDefaultLtr

Einstellung auf Absatzebene

LevelDefaultRtl

Einstellung auf Absatzebene

LevelOverride

Bitkennzeichnung für Eingabeebenen.

Ltr

Text von links nach rechts.

MapNowhere
Veraltet.

Spezieller Wert, der von den Zuordnungsmethoden zurückgegeben werden kann, wenn ein logischer Index keinen entsprechenden visuellen Index aufweist oder umgekehrt.

MaxExplicitLevel

Maximale explizite Einbettungsebene.

Mixed

Gemischter direktionaler Text.

Neutral

Kein stark direktionaler Text.

OptionDefault
Veraltet.

Optionswert für setReorderingOptions: Alle Optionen deaktivieren, die mit dieser Methode festgelegt werden können

OptionInsertMarks
Veraltet.

Option bit for setReorderingOptions: insert Bidi marks (LRM or RLM) when needed to ensure correct result of a reordering to a Logical order

OptionRemoveControls
Veraltet.

Optionsbit für setReorderingOptions: Bidi-Steuerzeichen entfernen

OptionStreaming
Veraltet.

Option Bit für setReorderingOptions: Verarbeiten der Ausgabe als Teil eines Datenstroms, um fortgesetzt zu werden

OutputReverse

option bit for writeReordered(): write the output in reverse order

RemoveBidiControls

option bit for writeReordered(): remove Bidi control characters (this does not affect INSERT_LRM_FOR_NUMERIC)

ReorderDefault

Neuanordnungsmodus: Regular Logical to Visual Bidi algorithm according to Unicode.

ReorderGroupNumbersWithR

Neuanordnungsmodus: Logischer zu visueller Algorithmus gruppieren Zahlen mit angrenzenden R-Zeichen (umkehrbarer Algorithmus).

ReorderInverseForNumbersSpecial

Neuanordnungsmodus: Umgekehrter Bidi-Algorithmus (Visual to Logical) für den REORDER_NUMBERS_SPECIAL Bidi-Algorithmus.

ReorderInverseLikeDirect

Neuanordnungsmodus: Visueller zu logischer Algorithmus, der dem regulären Logischen zu visuellen Algorithmus entspricht.

ReorderInverseNumbersAsL

Neuanordnungsmodus: Visueller zu logischer Algorithmus, der Zahlen wie L behandelt (derselbe Algorithmus wie ausgewählt nach setInverse(true).

ReorderNumbersSpecial

Neuanordnungsmodus: Logischer zu visueller Algorithmus, der Zahlen auf eine Weise verarbeitet, die das Verhalten von Windows XP nachahmt.

ReorderRunsOnly

Neuanordnungsmodus: Neuanordnen wird nur ausgeführt, um eine logische LTR-Zeichenfolge in die logische RTL-Zeichenfolge mit derselben Anzeige zu transformieren oder umgekehrt.

Rtl

Text von rechts nach links.

Eigenschaften

Name Beschreibung
BaseLevel

Gibt die Basisebene zurück (0, wenn von links nach rechts, 1, wenn von rechts nach links).

Class

Gibt die Laufzeitklasse dieses Werts Objectzurück.

(Geerbt von Object)
CustomClassifier

Ruft den aktuellen benutzerdefinierten Klassenklassifizierer ab, der für die Bidi-Klassenbestimmung verwendet wird. -oder- Legen Sie einen benutzerdefinierten Bidi-Klassifizierer fest, der von der UBA-Implementierung für die Bidi-Klassenbestimmung verwendet wird.

Direction

Ruft die Richtung des Texts ab.

Handle

Das Handle für die zugrunde liegende Android-Instanz.

(Geerbt von Object)
Inverse

Ist dieses Bidi Objekt so eingestellt, dass der umgekehrte Bidi-Algorithmus ausgeführt wird? -oder- Ändern Sie den Vorgang des Bidi-Algorithmus so, dass er einem "umgekehrten Bidi"-Algorithmus nähert.

IsLeftToRight

Gibt "true" zurück, wenn die Zeile den gesamten Text von links nach rechts aufweist und die Basisrichtung von links nach rechts ist.

IsMixed

True zurückgeben, wenn die Linie nicht von links nach rechts oder von rechts nach links ist.

IsOrderParagraphsLTR

Ist dieses Bidi Objekt so festgelegt, dass Ebene 0 blocktrennzeichen zugewiesen werden, sodass aufeinander folgende Absätze von links nach rechts vorankommen?

IsRightToLeft

True zurückgeben, wenn die Zeile den gesamten Text von rechts nach links aufweist und die Basisrichtung von rechts nach links ist

JniIdentityHashCode

Ruft den Identitätshashcode ab, der diesem Java Peer von der Interop-Laufzeit zugewiesen ist.

(Geerbt von Object)
JniManagedPeerState

<h2>Bidi-Algorithmus für ICU</h2>

        This is an implementation of the Unicode Bidirectional Algorithm.
(Geerbt von JavaObject)
JniPeerMembers

<h2>Bidi-Algorithmus für ICU</h2>

        This is an implementation of the Unicode Bidirectional Algorithm.
Length

Ruft die Länge des Texts ab.

ParaLevel

Rufen Sie die Absatzebene des Texts ab.

PeerReference

Ruft den JNI-Objektverweis für diesen Java Peer ab.

(Geerbt von Object)
ProcessedLength

Ruft die Länge des Quelltexts ab, der vom letzten Aufruf setPara()verarbeitet wird.

ReorderingMode

Was ist der angeforderte Neuanordnungsmodus für ein bestimmtes Bidi-Objekt? -oder- Ändern Sie den Vorgang des Bidi-Algorithmus so, dass er einige Varianten zum grundlegenden Bidi-Algorithmus implementiert oder einen "umgekehrten Bidi"-Algorithmus annähert, abhängig von unterschiedlichen Werten des "Neuanordnungsmodus".

ReorderingOptions

Welche Neuanordnungsoptionen werden auf ein bestimmtes Bidi-Objekt angewendet? -oder- Geben Sie an, welche der Neuanordnungsoptionen während Bidi-Transformationen angewendet werden sollen.

ResultLength

Ruft die Länge des neu angeordneten Texts ab, der sich aus dem letzten Aufruf setPara()ergibt.

RunCount

Gibt die Anzahl der Ebenenausführungen zurück.

TextAsString

Rufen Sie den Text ab.

ThresholdClass

<h2>Bidi-Algorithmus für ICU</h2>

        This is an implementation of the Unicode Bidirectional Algorithm.
ThresholdType

<h2>Bidi-Algorithmus für ICU</h2>

        This is an implementation of the Unicode Bidirectional Algorithm.

Methoden

Name Beschreibung
BaseIsLeftToRight()

True zurückgeben, wenn die Basisrichtung von links nach rechts ist

Clone()

Erstellt und gibt eine Kopie dieses Objekts zurück.

(Geerbt von Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

<h2>Bidi-Algorithmus für ICU</h2>

        This is an implementation of the Unicode Bidirectional Algorithm.
(Geerbt von JavaObject)
CountParagraphs()

Ruft die Anzahl der Absätze ab.

CountRuns()

Ruft die Anzahl der Ausführungen ab.

CreateLineBidi(Int32, Int32)

Erstellen Sie ein Bidi-Objekt, das die bidi-Informationen in einer Textzeile innerhalb des Absatzes darstellt, der durch die aktuelle Bidi dargestellt wird.

Dispose()

Veröffentlicht die Ressourcen, die von diesem Java Peer gehalten werden.

(Geerbt von Object)
Dispose(Boolean)

Veröffentlicht die Ressourcen, die von diesem Java Peer gehalten werden.

(Geerbt von Object)
DisposeUnlessReferenced()

<h2>Bidi-Algorithmus für ICU</h2>

        This is an implementation of the Unicode Bidirectional Algorithm.
(Geerbt von JavaObject)
Equals(Object)

<h2>Bidi-Algorithmus für ICU</h2>

        This is an implementation of the Unicode Bidirectional Algorithm.
(Geerbt von JavaObject)
Equals(Object)

Gibt an, ob ein anderes Objekt "gleich" diesem Objekt ist.

(Geerbt von Object)
GetBaseDirection(ICharSequence)

Rufen Sie die Basisrichtung des Texts ab, der gemäß dem Bidirektionalen Unicode-Algorithmus bereitgestellt wird.

GetBaseDirection(String)

Rufen Sie die Basisrichtung des Texts ab, der gemäß dem Bidirektionalen Unicode-Algorithmus bereitgestellt wird.

GetCustomizedClass(Int32)

Ruft die Bidi-Klasse für einen bestimmten Codepunkt ab.

GetHashCode()

Gibt einen Hashcodewert für das Objekt zurück.

(Geerbt von Object)
GetLevelAt(Int32)

Ruft die Ebene für ein Zeichen ab.

GetLevels()

Ruft ein Array von Ebenen für jedes Zeichen ab.

GetLogicalIndex(Int32)

Rufen Sie die logische Textposition von einer visuellen Position ab.

GetLogicalMap()

Dient zum Abrufen einer logischen zu visuellen Indexzuordnung (Array) für die Zeichen im Bidi (Absatz- oder Zeilenobjekt).

GetLogicalRun(Int32)

Dient zum Abrufen einer logischen Ausführung.

GetParagraph(Int32)

Rufen Sie einen Absatz ab, der einer Position innerhalb des Texts zugewiesen ist.

GetParagraphByIndex(Int32)

Rufen Sie einen Absatz ab, der dem Index dieses Absatzes entspricht.

GetParagraphIndex(Int32)

Rufen Sie den Index eines Absatzes ab, wobei eine Position innerhalb des Texts angegeben ist.

GetRunLevel(Int32)

Gibt die Ebene der logischen Ausführung in dieser Zeile zurück.

GetRunLimit(Int32)

Gibt den Index des Zeichens über das Ende der logischen Zeichenfolge in dieser Zeile als Offset vom Anfang der Zeile zurück.

GetRunStart(Int32)

Gibt den Index des Zeichens am Anfang der logischen Ausführung in dieser Zeile als Offset vom Anfang der Zeile zurück.

GetText()

Rufen Sie den Text ab.

GetVisualIndex(Int32)

Rufen Sie die visuelle Position von einer logischen Textposition ab.

GetVisualMap()

Dient zum Abrufen einer visuellen zu logischen Indexzuordnung (Array) für die Zeichen im Bidi (Absatz- oder Zeilenobjekt).

GetVisualRun(Int32)

Ruft ein BidiRun Objekt gemäß seinem Index ab.

InvertMap(Int32[])

Invertieren einer Indexzuordnung.

JavaFinalize()
Veraltet.

Wird vom Garbage Collector für ein Objekt aufgerufen, wenn die Garbage Collection bestimmt, dass keine weiteren Verweise auf das Objekt vorhanden sind.

(Geerbt von Object)
Notify()

Aktiviert einen einzelnen Thread, der auf dem Monitor dieses Objekts wartet.

(Geerbt von Object)
NotifyAll()

Aktiviert alle Threads, die auf dem Monitor dieses Objekts warten.

(Geerbt von Object)
OrderParagraphsLTR(Boolean)

Geben Sie an, ob Blocktrennzeichen der Ebene Null zugewiesen werden müssen, damit aufeinander folgende Absätze von links nach rechts vorankommen.

ReorderLogical(Byte[])

Dies ist eine Komfortmethode, die kein Bidi Objekt verwendet.

ReorderVisual(Byte[])

Dies ist eine Komfortmethode, die kein Bidi Objekt verwendet.

ReorderVisually(Byte[], Int32, Object[], Int32, Int32)

Ordnen Sie die Objekte im Array basierend auf ihren Ebenen in visueller Reihenfolge neu an.

RequiresBidi(Char[], Int32, Int32)

Gibt "true" zurück, wenn für den angegebenen Text eine bidi-Analyse erforderlich ist.

SetContext(String, String)

Legen Sie den Kontext vor einem Aufruf von setPara() fest.

SetHandle(IntPtr, JniHandleOwnership)

Legt die Handle-Eigenschaft fest.

(Geerbt von Object)
SetLine(Int32, Int32)

setLine() gibt ein Bidi Objekt zurück, das die Neuanordnungsinformationen, insbesondere die aufgelösten Ebenen, für alle Zeichen in einer Textzeile enthält.

SetPara(Char[], SByte, Byte[])

Führen Sie den Unicode-Bidi-Algorithmus aus.

SetPara(IAttributedCharacterIterator)

Führen Sie den Unicode-Bidi-Algorithmus für einen bestimmten Absatz aus, wie im Unicode-Standard-Anhang Nr. 9, Version 13, auch in "Unicode Standard, Version 4" beschrieben.

SetPara(String, SByte, Byte[])

Führen Sie den Unicode-Bidi-Algorithmus aus.

SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

<h2>Bidi-Algorithmus für ICU</h2>

        This is an implementation of the Unicode Bidirectional Algorithm.
(Geerbt von JavaObject)
ToArray<T>()

Erstellt ein verwaltetes Array aus diesem Java Arraywrapper.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolgendarstellung des Objekts zurück.

(Geerbt von Object)
UnregisterFromRuntime()

Hebt die Registrierung dieses Java Peers aus der Interop-Laufzeit auf.

(Geerbt von Object)
Wait()

Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch em benachrichtigt/em< oder >em<unterbrochen>/em<.><>

(Geerbt von Object)
Wait(Int64, Int32)

Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist.

(Geerbt von Object)
Wait(Int64)

Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist.

(Geerbt von Object)
WriteReordered(BidiOptions)

Verwenden Sie ein Bidi Objekt, das die Neuanordnungsinformationen für einen Textabschnitt (einen oder mehrere Absätze) enthält, der durch setPara() oder für eine Textzeile festgelegt wird, und setLine() geben Sie eine Zeichenfolge zurück, die den neu angeordneten Text enthält.

WriteReverse(String, BidiOptions)

Umkehren eines Rechts-To-Left Ausführung von Unicode-Text.

Explizite Schnittstellenimplementierungen

Name Beschreibung
IJavaPeerable.Disposed()

<h2>Bidi-Algorithmus für ICU</h2>

        This is an implementation of the Unicode Bidirectional Algorithm.
(Geerbt von JavaObject)
IJavaPeerable.Finalized()

<h2>Bidi-Algorithmus für ICU</h2>

        This is an implementation of the Unicode Bidirectional Algorithm.
(Geerbt von JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

<h2>Bidi-Algorithmus für ICU</h2>

        This is an implementation of the Unicode Bidirectional Algorithm.
(Geerbt von JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

<h2>Bidi-Algorithmus für ICU</h2>

        This is an implementation of the Unicode Bidirectional Algorithm.
(Geerbt von JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

<h2>Bidi-Algorithmus für ICU</h2>

        This is an implementation of the Unicode Bidirectional Algorithm.
(Geerbt von JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

<h2>Bidi-Algorithmus für ICU</h2>

        This is an implementation of the Unicode Bidirectional Algorithm.
(Geerbt von JavaObject)

Erweiterungsmethoden

Name Beschreibung
GetJniTypeName(IJavaPeerable)

Ruft den JNI-Namen des Typs der Instanz selfab.

JavaAs<TResult>(IJavaPeerable)

Versuchen Sie, die Eingabe selfzu TResult erzwingen, und überprüfen Sie, ob die Koersion auf der Java Seite gültig ist.

JavaCast<TResult>(IJavaObject)

Führt eine android-laufzeitgecheckte Typkonvertierung aus.

JavaCast<TResult>(IJavaObject)

<h2>Bidi-Algorithmus für ICU</h2>

        This is an implementation of the Unicode Bidirectional Algorithm.
TryJavaCast<TResult>(IJavaPeerable, TResult)

Versuchen Sie, die Eingabe selfzu TResult erzwingen, und überprüfen Sie, ob die Koersion auf der Java Seite gültig ist.

Gilt für: