Как сделать так, чтобы первые 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);
Здесь вы можете почитать более подробную информацию.