6

我想AlertDialog展示它与字符串和图标一起显示的消息。

是否可以在字符串资源中插入图标​​/图像/drawables?有没有办法用AlertDialog.

编辑
如果不清楚,drawables需要在字符串内。比如“点击图标 [icon-image] 然后点击...”

4

3 回答 3

12
    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);
于 2016-08-26T12:25:54.530 回答
6

该类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);
于 2013-09-29T20:38:59.580 回答
0

您可以将自定义视图自定义标题与包含复合可绘制对象的 ImageView 或 TextView 一起使用。

于 2013-09-29T20:40:08.767 回答