我有一个消息传递窗口小部件,显示用户消息的列表,未读消息应显示为粗体。
我的代码:
RemoteViews messageRow = new RemoteViews(mContext.getPackageName(), R.layout.row_message);
messageRow.setTextViewText(R.id.row_user_name, mMessages.get(position).getSender());
messageRow.setTextViewText(R.id.row_time, mMessages.get(position).getDate());
if (!mMessages.get(position).isIsRead()){
// Bold the textviews if the message is unread
}
我正在寻找类似于textView.setTypeface(textView.getTypeface(), BOLD);
的内容,适用于小部件文本视图。 RemoteViews似乎不存在此语法。
谢谢!
答案 0 :(得分:0)
试试这样。
1.在代码中使用SpannableString
。
2.然后使用new StyleSpan(android.graphics.Typeface.BOLD)
或new StyleSpan(android.graphics.Typeface.NORMAL)
。
3.设置为RemoteViews
示例强>
// SpannableString init
SpannableString mspInt = null;
// the text you want to change the style
String text = "yourString";
// SpannableString init
mspInt = new SpannableString(text);
if (!mMessages.get(position).isIsRead()){
// Bold the textviews if the message is unread
// use setSpan to set BOLD to your text
mspInt.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 0, text.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
messageRow.setTextViewText(R.id.your_id, mspInt);
} else {
// use setSpan to set NORMAL to your text
mspInt.setSpan(new StyleSpan(Typeface.NORMAL), 0, text.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
messageRow.setTextViewText(R.id.your_id, mspInt);
}
答案 1 :(得分:0)
请试试这个,这对我有用 只需将“assistant_bold.ttf”文件添加到资产文件夹即可。 然后将android.graphics.Typeface 导入到您的类
字体xyz;
xyz = Typeface.createFromAsset(context.getAssets(),“assistant_bold.ttf”); messageRow.setTypeface(XYZ);