Est-il possible de définir la couleur de la juste durée de texte dans un TextView?
Je voudrais faire quelque chose de similaire à l'application Twitter, dans lequel une partie du texte est en bleu. Voir l'image ci-dessous:
Est-il possible de définir la couleur de la juste durée de texte dans un TextView?
Je voudrais faire quelque chose de similaire à l'application Twitter, dans lequel une partie du texte est en bleu. Voir l'image ci-dessous:
Une autre réponse serait très similaire, mais n'aurait pas besoin de définir le texte de l' TextView
deux fois
TextView TV = (TextView)findViewById(R.id.mytextview01);
Spannable wordtoSpan = new SpannableString("I know just how to whisper, And I know just how to cry,I know just where to find the answers");
wordtoSpan.setSpan(new ForegroundColorSpan(Color.BLUE), 15, 30, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
TV.setText(wordtoSpan);
Voici un peu d'aide de fonction. Idéal pour quand vous avez plusieurs langues!
private void setColor(TextView view, String fulltext, String subtext, int color) {
view.setText(fulltext, TextView.BufferType.SPANNABLE);
Spannable str = (Spannable) view.getText();
int i = fulltext.indexOf(subtext);
str.setSpan(new ForegroundColorSpan(color), i, i+subtext.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
Si vous voulez plus de contrôle, vous pouvez consulter l' TextPaint
classe. Voici comment l'utiliser:
final ClickableSpan clickableSpan = new ClickableSpan() {
@Override
public void onClick(final View textView) {
//Your onClick code here
}
@Override
public void updateDrawState(final TextPaint textPaint) {
textPaint.setColor( yourContext.getResources().getColor(R.color.orange));
textPaint.setUnderlineText(true);
}
};
définissez votre TtextView
s texte spannable et de définir un ForegroundColorSpan
pour votre texte.
TextView textView = (TextView)findViewById(R.id.mytextview01);
Spannable wordtoSpan = new SpannableString("I know just how to whisper, And I know just how to cry,I know just where to find the answers");
wordtoSpan.setSpan(new ForegroundColorSpan(Color.BLUE), 15, 30, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
textView.setText(wordtoSpan);
Une autre façon qui pourrait être utilisé dans certaines situations, est de définir la couleur des liens dans les propriétés de l'affichage, qui est de prendre le Spannable.
Si votre Spannable est destiné à être utilisé dans un TextView, par exemple, vous pouvez définir la couleur des liens dans le fichier XML comme ceci:
<TextView
android:id="@+id/myTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColorLink="@color/your_color"
</TextView>
Vous pouvez aussi le mettre dans le code avec:
TextView tv = (TextView) findViewById(R.id.myTextView);
tv.setLinkTextColor(your_color);
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.