Android : Don't show image in TextView by ImageSpan in Android

on Friday, December 5, 2014


I want to show an image in TextView as a smiley. I have a method that gets a string and adds ImageSpans to a CharSequence that replace textual emoticons such as :-) with a graphical version.



public Spannable addSmileySpans(CharSequence text) {
SpannableStringBuilder builder = new SpannableStringBuilder(text);

Matcher matcher = mPattern.matcher(text);
while (matcher.find()) {
int resId = mSmileyToRes.get(matcher.group());
builder.setSpan(new ImageSpan(mContext, resId),
matcher.start(), matcher.end(),
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}

return builder;
}


Then I use it on my adapter:



viewHolder.txtReceivedBody.setText(parser.addSmileySpans(message.body));


Also, here defined TextView elemnt:



<TextView
android:id="@+id/txtReceivedBody"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/imgReceivedDirection"
android:layout_marginRight="30dp"
android:background="@drawable/selector_conversation_received"
android:minHeight="40dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="4dp"
android:paddingBottom="4dp"
android:textSize="18sp"
android:autoLink="all"
android:gravity="right"/>


Unfortunately, didn't show image in TextView and only show a main string. What should I do to solve it?


0 comments:

Post a Comment