改变颜色的一些textview字符串

时间:2015-09-18 10:44:57

标签: android android-json

如何在textview中更改字符串的某些部分的颜色,值来自json。我正在使用Spannable类和通过html,但它不会被更改。

  if(jobject.has("posts")){

               JSONArray ar= jobject.getJSONArray("posts");
               String value=""+ar.length();
               Profile.this.post.setText(value);
               for(int i=0;i<ar.length();i++){
                   JSONObject a= ar.getJSONObject(i);
                   Pojo_profile po= new Pojo_profile();
                  // po.setUsername();
                   String blue = object.getString("user_login");

                   po.setData(Html.fromHtml("<font color='#FF0000'>"+blue+"</font>")+" "+a.getString("text_post"));


                   profile.add(po);
               }

4 个答案:

答案 0 :(得分:2)

使用跨度。

示例:

final SpannableStringBuilder sb = new SpannableStringBuilder("your text here");

// Span to set text color to some RGB value
final ForegroundColorSpan fcs = new ForegroundColorSpan(Color.rgb(158, 158, 158)); 

// Span to make text bold
final StyleSpan bss = new StyleSpan(android.graphics.Typeface.BOLD); 

// Set the text color for first 4 characters
sb.setSpan(fcs, 0, 4, Spannable.SPAN_INCLUSIVE_INCLUSIVE); 

// make them also bold
sb.setSpan(bss, 0, 4, Spannable.SPAN_INCLUSIVE_INCLUSIVE); 

yourTextView.setText(sb);

答案 1 :(得分:0)

textView.setText(Html.fromHtml("*your html text*"));

仅在设置文字时致电Html.fromHtml

答案 2 :(得分:0)

AS Per您的问题表明您需要在单个textView上设置两个或更多文本颜色,然后以下行应该工作

      textView.setText(Html.fromHtml("blue" +"<font color=\"#000099\">"  + a.getString("text_post") + "</font>"));

答案 3 :(得分:0)

SDK&gt; = 14

中使用 setAllCaps false
 if (Build.VERSION.SDK_INT >= 14) {
        textView.setAllCaps(false);

    }

然后使用

textView.setText(Html.fromHtml("*your html text*"));