Bidi.GetVisualRun(Int32) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene un BidiRun objeto según su índice.
[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
Parámetros
- runIndex
- Int32
es el número de la ejecución en orden visual, en el intervalo [0..countRuns()-1].
Devoluciones
un objeto BidiRun que contiene los detalles de la ejecución. La direccionalidad de la ejecución es LTR==0 o RTL==1, nunca MIXED.
- Atributos
Comentarios
Obtiene un BidiRun objeto según su índice. Los métodos BidiRun se pueden usar para recuperar el inicio lógico, la longitud y el nivel de la ejecución, que pueden ser incluso para una ejecución LTR o impar para una ejecución RTL. En una ejecución RTL, el carácter del inicio lógico está visualmente a la derecha de la ejecución mostrada. La longitud es el número de caracteres de la ejecución.
countRuns() normalmente se llama a antes de recuperar las ejecuciones.
Ejemplo:
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);
}
}
Tenga en cuenta que, en ejecuciones de derecha a izquierda, el código como este coloca los segundos suplentes antes de los primeros (que generalmente es una mala idea) y la combinación de caracteres antes de los caracteres base.
El uso de {@link #writeReordered}, opcionalmente con la {@link #KEEP_BASE_COMBINING} opción , se puede considerar para evitar estos problemas.
Java documentación para android.icu.text.Bidi.getVisualRun(int).
Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.