text = text + CepVizyon.getPhoneCode() + "\n\n"
+ getText(R.string.currentversion) + CepVizyon.getLicenseText();
activationText.setText(text);
myTextView.setText(text);
Quero mudar a cor CepVizyon.getPhoneCode()
do barbante de. Como posso fazer isso?
android
uitextview
textview
atasoyh
fonte
fonte
Respostas:
Spannable é mais flexível:
fonte
()
depois detext.length
comolength
é um método, não um campo. Eu faria isso sozinho, mas as edições devem ter pelo menos 6 caracteres :)Html.fromHtml(R.id.your_html_string);
fonte
Se você tiver texto estático que precisa de cor, pode adicioná-lo sem nenhum código por meio do arquivo de strings:
então
resultado
não tenho certeza em quais versões da API isso funciona, mas não funciona para a API 19 que eu testei até agora, então provavelmente apenas algumas das versões mais recentes da API suportam isso
editar: como @hairraisin mencionado nos comentários, tente usar em
fgcolor
vez decolor
para a cor da fonte, então deve funcionar para níveis de API inferiores, mas precisa de mais testes para ter certezafonte
<font fgcolor=...
API 15 e API 25 (eu não testei especificamente 19 embora)Com relação à resposta de Maneesh, isso funcionará, mas você precisa adicionar e escapar as aspas para o atributo de cor.
fonte
Isso é bom para mim!
fonte
Aqui está solução em Kotlin que usa
SpannableString
para mudar a cor de parte de uma string.fonte
Esta é uma
colorize
função baseada na resposta de andyboot:fonte
Não gostei da ideia de fazer isso por código toda vez que quero colorir partes do texto, o que tenho feito muito em todos os meus aplicativos (e já que em alguns casos o texto está sendo definido em tempo de execução com diferentes inline- cores definidas), então eu criei o meu próprio
MarkableTextView
.A ideia era:
Aqui está o processo passo a passo:
Primeiro, eu precisava encontrar uma maneira de encontrar tags XML em uma determinada string e
Regex
fiz o truque.Para que o acima corresponda a uma tag XML, ele deve ter os seguintes critérios:
<a>
<a >
<a-a>
<a ..attrs..>
mas não< a>
<1>
<a></a>
mas não<a></b>
Agora, para os atributos, vamos usar este ..
Ele tem o mesmo conceito e geralmente não preciso ir muito longe para ambos, já que o compilador cuidará do resto se alguma coisa sair do formato.
Agora precisamos de uma classe que possa conter os dados extraídos:
Antes de mais nada, vamos adicionar este iterador legal que tenho usado por muito tempo para fazer um loop nas correspondências (não me lembro do autor) :
MarkableTextView:
Finalmente, estilo, então aqui está um estilizador muito simples que fiz para esta resposta:
E esta é a aparência da
Markable
classe que contém as definições:Tudo o que precisamos agora é fazer referência a uma string e, basicamente, ela deve se parecer com isto:
Certifique-se de envolver as tags com a
CDATA Section
e escapar"
com\
.Fiz isso como uma solução modular para processar partes do texto de todas as maneiras diferentes, sem a necessidade de colocar código desnecessário por trás.
fonte
Fiz o que o andy boot disse, mas também tinha um span clicável e não funcionou porque o pedido
setSpans
foi chamado. Então você tem que primeiro chamar ospannable.setSpan(clickableSpanand...
então ospannable.setSpan(new ForegroundColorSpan...
para obter a cor no TextViewfonte
Fiz esta pequena função, basta passar o seu texto para colorir, os índices inicial e final do que você deseja colorir desse texto e a própria cor
Kotlin
Uso
fonte
Com uma função de extensão Kotlin de uso geral, seria assim:
fonte
Use escapes de caracteres + Html.fromHtml ()
Como armazenar a string na pasta de recursos da string
Como mostrar no TextView?
Bônus:
A string na saída se parece com isto
fonte
Uma maneira é dividir
myTextView
em alguns separadosTextViews
, um dos quais seria apenas para o código do telefone. Então, controlar a cor deste específicoTextView
é bastante simples.fonte