2017-09-01 7 views
-2

Ich bin in der Lage zu So Textview Text mit verschiedenen Farben angezeigt werden mitangezeigte Taste Text mit zwei verschiedenen Farben

String redString= "<font color='#ee0000'>yay</font>"; 
String blackString = "<font color='#000000'>eureka</font>"; 
textView.setText(Html.fromHtml(redString + blackString)); 

aber wenn genau das gleiche mit

button.setText(...) 

versucht zu tun, nicht wahr Arbeit! Weißt du, ob es im Button-Text unterschiedliche Farben geben kann? Wenn nicht, gibt es alternative Lösungen?

EDIT: Ich habe versucht beide Lösungen vorgeschlagen, aber keiner von ihnen funktioniert. Ich habe gerade ein neues Projekt sicher sein:

public class MainActivity extends AppCompatActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    //first solution 
    String redString= "<font color='#ee0000'>yay </font>"; 
    String blackString = "<font color='#000000'>eureka</font>"; 
    TextView test1 = (TextView) findViewById(R.id.textView); 
    Button test2 = (Button) findViewById(R.id.button2); 
    test1.setText(Html.fromHtml(redString + blackString)); 
    test2.setText(Html.fromHtml(redString + blackString)); 

    //second solution 
    Button b = (Button) findViewById(R.id.button); 
    SpannableString text = new SpannableString("Hello World"); 
    text.setSpan(new ForegroundColorSpan(Color.RED), 0, 4, 0); 
    text.setSpan(new ForegroundColorSpan(Color.BLUE), 5, text.length(), 0); 
    b.setText(text, TextView.BufferType.SPANNABLE); 
    } 
} 

And this is the result (sorry, aber ich nicht das Bild aufgrund der niedrigen Ruf angezeigt werden kann)

Ich AS 2.3.3 unter Windows 10. Die Verwendung von Emulator verwendet Android 7 mit API 25. Danke für Ihre Hilfe!

+0

Sie können einfaches lineares Layout (horizontal) mit Textansicht als Schaltfläche und setOnClickListener in diesem linearen Layout verwenden. –

+0

überprüfen Sie SpannableString –

+0

mögliche Lösung ist [hier] (https://stackoverflow.com/questions/19500350/use-2-or-more-colors-for-a-button-text). Mit freundlichen Grüßen –

Antwort

1

Verwendung Dieser Code

Button b = (Button) findViewById(R.id.button1); 
SpannableString text = new SpannableString("Hello World"); 

text.setSpan(new ForegroundColorSpan(Color.RED), 0, 4, 0); 

text.setSpan(new ForegroundColorSpan(Color.BLUE), 5, text.length(), 0); 

b.setText(text, BufferType.SPANNABLE); 
+1

ausprobiert, aber hat nicht funktioniert, Button-Textfarbe ist immer noch Standard! Ergebnis im Bearbeitungsteil –

0

Es funktioniert für mich ...

TextView test = (TextView) findViewById(R.id.ettx); 

     Button test2 = (Button) findViewById(R.id.ettxb); 

     String redString= "<font color='#ee0000'>yay</font>"; 
     String blackString = "<font color='#000000'>eureka</font>"; 
     test.setText(Html.fromHtml(redString + blackString)); 

     test2.setText(Html.fromHtml(redString + blackString)); 

enter image description here

0

Try this:

TextView b = (TextView) findViewById(R.id.text); 

SpannableString text = new SpannableString("Color Change"); 

text.setSpan(new ForegroundColorSpan(Color.BLUE), 0, 5, 0); 

text.setSpan(new ForegroundColorSpan(Color.GREEN), 5, text.length(), 0); 

b.setText(text, TextView.BufferType.SPANNABLE); 
0

Wenn Sie android:textAllCaps = true für den Button haben es könnte nein t arbeiten. Versuchen Sie es auf false einzustellen.

Verwandte Themen