我希望展示一个包含字符串和图标的AlertDialog。
有没有可能在字符串资源中插入图标/图片/可绘制对象? 是否有方法可以在AlertDialog
中与字符串一起显示可绘制对象?
编辑
如果不清楚,需要将可绘制对象放在字符串内,例如“点击图标[图标图像],然后再单击…”。
我希望展示一个包含字符串和图标的AlertDialog。
有没有可能在字符串资源中插入图标/图片/可绘制对象? 是否有方法可以在AlertDialog
中与字符串一起显示可绘制对象?
编辑
如果不清楚,需要将可绘制对象放在字符串内,例如“点击图标[图标图像],然后再单击…”。
SpannableString spannableString = new SpannableString("@");
Drawable d = getResources().getDrawable(R.drawable.your_drawable);
d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight());
ImageSpan span = new ImageSpan(d, ImageSpan.ALIGN_BOTTOM);
spannableString.setSpan(span, spannableString.toString().indexOf("@"), spannableString.toString().indexOf("@")+1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
yourTextView.setText(spannableString);
AlertDialog.Builder
类有一个方法setIcon(int iconRes)
或setIcon(Drawable icon)
,您可以使用这个方法来设置图标。
编辑:
如果您需要将其放置在字符串的中间,您可以使用ImageSpan
:
String src = "Here's an icon: @ isn't it nice?";
SpannableString str = new SpannableString(src);
int index = str.indexOf("@");
str.setSpan(new ImageSpan(getResources().getDrawable(R.drawable.my_icon), index, index + 1, ImageSpan.ALIGN_BASELINE));
AlertDialog.Builder x = new AlertDialog.Builder(myContext);
x.setMessage(str);
string.xml
资源文件中完成这个任务? - nrofis{{R.drawable.my_icon}}
),解析可绘制对象并自动将其转换为Span。但是,这样你还需要创建一个使用此自定义TextView的Dialog子类,这不是一项小工作。 - Kevin Coppock您可以在包含复合绘图的ImageView或TextView中使用{{link1:自定义视图}}或{{link2:自定义标题}}。