繁体   English   中英

将样式应用于字符串Android中的文本

[英]Apply styles to text in a string Android

我正在尝试使用SpannableString创建一个字符串,以应用颜色和粗体文本。

Spannable WordtoSpan = new SpannableString("Salida de la Capilla de María Auxiliadora\n00:00\nMarquesa de Sales\n00:00\nEspíritu Santo\n00:00\nSagasta\n00:00\nPza. Meneses\n00:00\nPozo Nuevo\n00:00\nPza. Ayuntamiento\n00:00\nSan Miguel\n00:00\nEstación de Penitencia, Iglesia San Miguel\n00:00\nÁnimas\n00:00\nMariano Hernández\n00:00\nEduardo Dato\n00:00\nRojas Marcos\n00:00\nPza. Meneses\n00:00\nCarrera\n00:00\nCalzadilla\n00:00\nGregorio María Ferro\n00:00\nMaría Auxiliadora\n00:00\nMarquesa de Sales\n00:00\nEntrada al Templo\n00:00\n");

tv.setText(WordtoSpan);

为了加快工作速度,我正在尝试创建如下条件:

if(WordtoSpan.toString().contains(":")){
// found the text string ":" (00:00)

WordtoSpan.setSpan(new ForegroundColorSpan(Color.rgb(140, 117, 189)), 42, 47, 
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
WordtoSpan.setSpan(new StyleSpan(Typeface.BOLD), 42,47, 47);
}else{
//Not found ":"
}

我将对所有字符串00:00实施粗体文本和颜色。 有人知道任何快速简便的方法吗? 不要在所有的00:00里都说起话来吗?

问候!

找到索引“ 00:00”,并将其设置为span的开始索引,将结束索引设置为“ 00:00”的长度

    Spannable WordtoSpan = new SpannableString("Salida de la Capilla de María Auxiliadora\n00:00\nMarquesa de Sales\n00:00\nEspíritu Santo\n00:00\nSagasta\n00:00\nPza. Meneses\n00:00\nPozo Nuevo\n00:00\nPza. Ayuntamiento\n00:00\nSan Miguel\n00:00\nEstación de Penitencia, Iglesia San Miguel\n00:00\nÁnimas\n00:00\nMariano Hernández\n00:00\nEduardo Dato\n00:00\nRojas Marcos\n00:00\nPza. Meneses\n00:00\nCarrera\n00:00\nCalzadilla\n00:00\nGregorio María Ferro\n00:00\nMaría Auxiliadora\n00:00\nMarquesa de Sales\n00:00\nEntrada al Templo\n00:00\n");

    String search = new String("00:00");
    int length = search.length();
    String input = WordtoSpan.toString();
    int startIndex = input.indexOf(search);
    while(startIndex > length)
    {
        WordtoSpan.setSpan(new ForegroundColorSpan(Color.rgb(140, 117, 189)), startIndex, startIndex + length,
                Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        WordtoSpan.setSpan(new StyleSpan(Typeface.BOLD), startIndex, startIndex + length, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        startIndex = input.indexOf(search, startIndex + length);
    }

您必须遍历整个字符串以获取索引

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM