В настоящее время я использую 26 Textview, чтобы применить стиль к определенному символу в зависимости от ситуации во время выполнения. Но если я могу применить стиль к определенному символу в текстовом представлении, я могу достичь своей цели, используя только одно текстовое представление.

Например Если я хочу сделать символ «M» красным в следующем коде. Возможно ли этого добиться?

    <TextView 
    android:id="@+id/TextView01" 
    android:layout_height="wrap_content" 
    android:textSize="20dip" 
    android:textStyle="bold"
    android:layout_width="15dip" 
    android:text="ABCDEFGHIJKLMNOPQRSTUVWXYZ" 
    android:background="#FFFFFF" 
   android:textColor="#000000"/>`

Или у кого-нибудь есть лучший вариант, чем использовать 26 TextView, это тоже приветствуется.

0
Vivek 15 Янв 2011 в 09:49
Хорошо; просто немного внимания.
 – 
user1228
13 Апр 2011 в 16:48

3 ответа

Лучший ответ

Вы можете использовать только 1 текстовое изображение и изменить цвет с помощью Html.fromHtml ()

0
RATTLESNAKE 15 Янв 2011 в 12:33
3
Пример можно найти по адресу: developer.android.com/intl/zh-CN/resources/samples/ApiDemos/src/…
 – 
Luke Dunstan
15 Янв 2011 в 12:43

Использовать Spannable

private SpannableString spanIt(String text, String queryText) {
    // search for query on text
    int startIndex = text.indexOf(queryText);
    int endIndex = startIndex + queryText.length();
    // spannable to show the search query
    SpannableString spanText = new SpannableString(text);
    if (startIndex > -1) {  
        spanText.setSpan(new ForegroundColorSpan(Color.RED), startIndex,
                endIndex, 0);
    }
    return spanText;
}

А затем в текстовом виде ..

tv.settext(spanIt("ABCDEFGHIJLMNOPQRSTUVXZ","M"));
1
Felipe Conde 23 Апр 2013 в 17:37

Попробуйте этот код. Это поможет вам ..

RelativeLayout rl=(RelativeLayout) findViewById(R.id.rl);
RelativeLayout.LayoutParams params=new RelativeLayout.LayoutParams((int)LayoutParams.WRAP_CONTENT,(int)LayoutParams.WRAP_CONTENT);
params.leftMargin=45;
params.topMargin=70;
TextView textView=new TextView(this);
String text = "I Love <font color='red'>ANDROID !!!</font>";
textView.setText(Html.fromHtml(text));
textView.setLayoutParams(params);
textView.setTextSize(25);
rl.addView(textView);
1
Brad Larson 25 Июл 2012 в 04:25