我希望显示AlertDialog
,其中包含字符串和图标的消息。
是否可以在字符串资源中插入图标/图像/ drawable?有没有办法用AlertDialog
中的字符串显示drawables。
修改
如果它不清楚,则drawables需要在字符串内。比如“点击图标[icon-image],然后点击......”
答案 0 :(得分:9)
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);
答案 1 :(得分:4)
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);
答案 2 :(得分:0)
您可以将custom view或custom title与包含复合绘图的ImageView或TextView一起使用。