2016-12-19 12 views
0

Android 앱을 개발 중입니다. 내 응용 프로그램에서 다른 색을 TextView의 텍스트로 설정하려고합니다. TextView에서 여러 색상을 의미합니다. 나는 그것을하기 위해 Html.fromHtml을 사용하려고 노력하고있다. 하지만 작동하지 않습니다. 아래에있는 내 코드를 참조하십시오Android에서 Html.fromHtml을 TextView로 사용하는 색상이 작동하지 않습니다.

TextView XML :

<TextView 
    android:paddingTop="@dimen/general_line_spacing" 
    android:paddingBottom="@dimen/general_line_spacing" 
    android:textSize="@dimen/mm_item_title_size" 
    android:textColor="@color/colorPrimaryText" 
    android:id="@+id/mm_item_tv_title" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" /> 

이 내가 당신이 볼 수 있듯이, 나는 HTML을 사용하여 글꼴 색상을 설정하고 TextView

String title = post.getTitle(); 
if(title!=null && title.length()>MAX_TITLE_LENGTH) 
{ 
    title = title.substring(0, MAX_TITLE_LENGTH); 
    title = title + "<font color='color:#2bb1ff'> .... read more</font>"; 
} 
viewHolder.tvTitle.setText(Html.fromHtml(title)); 

에 텍스트를 설정하는 방법입니다. 하지만 작동하지 않습니다. "추가 읽기"텍스트는 항상 다른 문자와 동일한 색상입니다. 그래서 나는이 방법을 시도했다.

title = title + "<![CDATA[<font color='color:#2bb1ff'> .... read more</font>]]>"; 

작동하지 않습니다. 또한 :

title = title + "<span style=color:'#2bb1ff'> .... read more</span>"; 

TextView에 여러 색상을 텍스트로 설정할 수 있습니까? 왜 내 코드가 작동하지 않습니까? 어떻게 해결할 수 있습니까?

+0

HTML 색상 코드에 따옴표를 사용할 때 이스케이프 문자를 사용해 보셨습니까? 유사 : JamesSwinton

답변

1

title = title + "<font color=#2bb1ff> .... read more</font>"; 
+0

예. 이건 작동 중입니다. 정말 고맙습니다. –

0

봅니다 그런 식으로 그것을 사용 :

title = title + "<span style='color: #2bb1ff;'> .... read more</span>";

+0

나는 일을 시도했지만 실패했습니다. –

1

사용 Spannable을 다음과 같이 :

SpannableStringBuilder builder = new SpannableStringBuilder(); 
    SpannableString str1 = new SpannableString(titleText); 
    builder.append(str1); 
    SpannableString str2 = new SpannableString("....read more"); 
    str2.setSpan(new ForegroundColorSpan(ContextCompat.getColor(getActivity(), R.color.colorGrey)), 0, str2.length(), 0); 
    builder.append(str2); 
    viewHolder.tvTitle.setText(builder); 
+0

나는 이것을 시험해 보았다. 작동 안함. ".... read more"는 이벤트가 추가되지 않습니다. –

+0

코드를 공유하십시오 .. – Meenal

0
시도

참고 : 코드에 정적 텍스트를 사용하지 마십시오. 그것을 string.xml 파일에서 사용하려고 시도한 다음 거기에서 가져 오십시오. 예 :

<string name="read_more"><![CDATA[<font color=#2bb1ff> .... read more</font>]]></string> 
title = title + activity.getResources().getString(R.string.read_more); 
+0

답변이 명확하지 않습니다. 너는 무엇을 제안 하는가? – zombie

0

코드가 작동하는지 확인했습니다.

title = title + "<font color='#000'> .... read more</font>"; 
txt_view.setText(Html.fromHtml(title)); 

귀하의 코드가 null 일 수 있습니다.

+0

'fromHtml (String)'은 더 이상 사용되지 않습니다. –