可在字符串资源中绘制

时间:2013-09-29 20:36:23

标签: android string drawable android-resources

我希望显示AlertDialog,其中包含字符串和图标的消息。

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

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

3 个答案:

答案 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 viewcustom title与包含复合绘图的ImageView或TextView一起使用。