Legen Sie die Farbe der TextView-Spanne in Android fest

Ist es möglich, die Farbe der nur Spanne von Text in einem TextView festzulegen?

Ich möchte etwas wie die Twitter-App machen, in der ein Teil des Textes blau ist. Siehe Bild unten:

  • Wie man benutzerdefinierte Regel in Android.mk vor Compilation laufen?
  • Getting a JSONException: Ende der Eingabe bei Zeichen 0
  • Wie benutzt man Facebook Access Token in Android App Webview
  • Android Clickable Auf Bildschirm Text
  • WakeLock untergesperrt GCM_LIB
  • SwipeRefreshLayout mit NestedScrollView und LinearLayout
  • Alt-Text

  • Posting auf Ruby on Rails App von Android
  • Schieberegler erstellen, um das Android-Volume zu ändern?
  • ImageView: Füllen Sie das horizontale Seitenverhältnis
  • Android GCM erfolgreich geschickt, aber nicht auf einigen Geräten empfangen
  • Android 2.2 und 2.3 PDF Download über HTTPS scheint gebrochen
  • Konfiguration geändert (Orientierungsänderung) und Zerstörung von Aktivitäten - ist das so, wie es funktionieren soll?
  • 9 Solutions collect form web for “Legen Sie die Farbe der TextView-Spanne in Android fest”

    Eine andere Antwort wäre sehr ähnlich, aber TextView brauche den Text der TextView zweimal zu setzen

     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); 

    Hier ist eine kleine Hilfefunktion. Großartig, wenn Sie mehrere Sprachen haben!

     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); } 

    Wenn Sie mehr Kontrolle wünschen, möchten Sie vielleicht die TextPaint Klasse überprüfen. Hier ist, wie man es benutzt:

     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); } }; 

    TtextView den Text von TtextView ein und definiere einen ForegroundColorSpan für deinen Text.

     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); 

    Eine andere Möglichkeit, die in einigen Situationen verwendet werden könnte, ist, die Link-Farbe in den Eigenschaften der Ansicht festzulegen, die die Spannbare nimmt.

    Wenn Ihr Spannable in einer TextView verwendet wird, können Sie beispielsweise die Link-Farbe im XML wie folgt einstellen:

     <TextView android:id="@+id/myTextView" android:layout_width="match_parent" android:layout_height="wrap_content" android:textColorLink="@color/your_color" </TextView> 

    Sie können es auch im Code mit:

     TextView tv = (TextView) findViewById(R.id.myTextView); tv.setLinkTextColor(your_color); 

    Ich finde immer visuelle Beispiele hilfreich bei dem Versuch, ein neues Konzept zu verstehen.

    Hintergrundfarbe

    Bildbeschreibung hier eingeben

     SpannableString spannableString = new SpannableString("Hello World!"); BackgroundColorSpan backgroundSpan = new BackgroundColorSpan(Color.YELLOW); spannableString.setSpan(backgroundSpan, 0, spannableString.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); textView.setText(spannableString); 

    Vordergrundfarbe

    Bildbeschreibung hier eingeben

     SpannableString spannableString = new SpannableString("Hello World!"); ForegroundColorSpan foregroundSpan = new ForegroundColorSpan(Color.RED); spannableString.setSpan(foregroundSpan, 0, spannableString.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); textView.setText(spannableString); 

    Kombination

    Bildbeschreibung hier eingeben

     SpannableString spannableString = new SpannableString("Hello World!"); ForegroundColorSpan foregroundSpan = new ForegroundColorSpan(Color.RED); BackgroundColorSpan backgroundSpan = new BackgroundColorSpan(Color.YELLOW); spannableString.setSpan(foregroundSpan, 0, 8, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); spannableString.setSpan(backgroundSpan, 3, spannableString.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); textView.setText(spannableString); 

    Weitere Studie

    • Erklären Sie die Bedeutung von Span-Flags wie SPAN_EXCLUSIVE_EXCLUSIVE
    • Android Spanned, SpannedString, Spannable, SpannableString und CharSequence

    Es gibt eine Fabrik für die Erstellung der Spannbaren, und vermeiden Sie die Besetzung, wie folgt:

     Spannable span = Spannable.Factory.getInstance().newSpannable("text"); 

    Setzen Sie Farbe auf Text, indem Sie String und Farbe übergeben :

     private String getColoredSpanned(String text, String color) { String input = "<font color=" + color + ">" + text + "</font>"; return input; } 

    Setzen Sie Text auf TextView / Button / EditText usw., indem Sie unter Code:

    Textvorschau:

     TextView txtView = (TextView)findViewById(R.id.txtView); 

    Get Colored String:

     String name = getColoredSpanned("Hiren", "#800000"); 

    Text auf TextView setzen:

     txtView.setText(Html.fromHtml(name)); 

    Erledigt

    1. Erstellen Sie Textansicht in ur Layout
    2. Füge diesen Code in ur mainlayout ein

       TextView textview=(TextView)findViewById(R.id.textview); Spannable spannable=new SpannableString("Hello my name is sunil"); spannable.setSpan(new ForegroundColorSpan(Color.BLUE), 0, 5, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); textview.setText(spannable); //Note:- the 0,5 is the size of coloue which u want to give the strring //0,5 means it give colur to starting from h and ending with space ie(hello), if you want to change size and colour u can easily 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.