我想在TextView中将图像显示为笑脸。我有一个获取字符串并将 ImageSpans 添加到 CharSequence 的方法,该方法将文本表情符号(例如:-)替换为图形版本。
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;
}
然后我在我的适配器上使用它:
viewHolder.txtReceivedBody.setText(parser.addSmileySpans(message.body));
此外,这里定义了 TextView 元素:
<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"/>
不幸的是,没有在 TextView 中显示图像,只显示一个主字符串。我应该怎么做才能解决它?