Bidi.GetVisualRun(Int32) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottenere un BidiRun oggetto in base al relativo indice.
[Android.Runtime.Register("getVisualRun", "(I)Landroid/icu/text/BidiRun;", "GetGetVisualRun_IHandler", ApiSince=29)]
public virtual Android.Icu.Text.BidiRun? GetVisualRun(int runIndex);
[<Android.Runtime.Register("getVisualRun", "(I)Landroid/icu/text/BidiRun;", "GetGetVisualRun_IHandler", ApiSince=29)>]
abstract member GetVisualRun : int -> Android.Icu.Text.BidiRun
override this.GetVisualRun : int -> Android.Icu.Text.BidiRun
Parametri
- runIndex
- Int32
è il numero dell'esecuzione nell'ordine visivo, nell'intervallo [0..countRuns()-1].
Valori restituiti
Oggetto BidiRun contenente i dettagli dell'esecuzione. La direzionalità dell'esecuzione è LTR==0 o RTL==1, mai MIXED.
- Attributi
Commenti
Ottenere un BidiRun oggetto in base al relativo indice. I metodi BidiRun possono essere usati per recuperare l'inizio logico, la lunghezza e il livello dell'esecuzione, che possono essere anche per un'esecuzione di conservazione a lungo termine o dispari per un'esecuzione RTL. In un'esecuzione RTL il carattere all'inizio logico si trova visivamente a destra dell'esecuzione visualizzata. La lunghezza è il numero di caratteri nell'esecuzione.
countRuns() viene in genere chiamato prima che vengano recuperate le esecuzioni.
Esempio:
Bidi bidi = new Bidi();
String text = "abc 123 DEFG xyz";
bidi.setPara(text, Bidi.RTL, null);
int i, count=bidi.countRuns(), logicalStart, visualIndex=0, length;
BidiRun run;
for (i = 0; i < count; ++i) {
run = bidi.getVisualRun(i);
logicalStart = run.getStart();
length = run.getLength();
if (Bidi.LTR == run.getEmbeddingLevel()) {
do { // LTR
show_char(text.charAt(logicalStart++), visualIndex++);
} while (--length > 0);
} else {
logicalStart += length; // logicalLimit
do { // RTL
show_char(text.charAt(--logicalStart), visualIndex++);
} while (--length > 0);
}
}
Si noti che nelle esecuzioni da destra a sinistra, codice come questo posiziona i secondi surrogati prima di quelli (che in genere è una cattiva idea) e la combinazione di caratteri prima dei caratteri di base.
L'uso di {@link #writeReordered}, facoltativamente con l'opzione {@link #KEEP_BASE_COMBINING} , può essere considerato per evitare questi problemi.
per android.icu.text.Bidi.getVisualRun(int).
Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.