Как сделать так, чтобы первые 10 символов в TextView были зеленого цвета, а остальные - синего?

Хотелось бы знать как сделать так, чтобы первые 10 символов в TextView были зеленого цвета, а остальные - синего?


Ответы (2 шт):

Автор решения: porosenok

С моими знаниями я только дошел до этого но хоть работает)

public class MainActivity extends AppCompatActivity {

//Основная строка
TextView textColorText;
//Строка с первыми 10 символами
TextView textViewTenWord;
//Все остальное
TextView textViewBack;

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

    //Инициализируем
    textColorText = findViewById(R.id.text);
    textViewTenWord = findViewById(R.id.textTen);
    textViewBack = findViewById(R.id.textBack);

    //Берем строку которую нужно покрасить
    String s = String.valueOf(textColorText.getText());

    //Достаем первые 10 символов 
    String s10 = s.substring(0,10);
    //Достаем все что после 10 символов
    String sBack = s.substring(10);

    //Пихаем в текствью в котором TextColor = green
    textViewTenWord.setText(s10);
    //Пихаем в текствью в котором TextColor = blue
    textViewBack.setText(sBack);

}

}

→ Ссылка
Автор решения: Sergei Buvaka

Воспользуетесь классом Spannable. Вы можете написать что-то вроде такого

TextView textView= (TextView)findViewById(R.id.mytextview);     
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), 10, 30, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
textView.setText(wordtoSpan);

Здесь вы можете почитать более подробную информацию.

→ Ссылка