可在字符串资源中绘制

nro*_*fis 5 string android drawable android-resources

我想AlertDialog显示它用字符串和图标一起显示它的消息.

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

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

Aka*_*iya 11

    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);
Run Code Online (Sandbox Code Playgroud)


kco*_*ock 5

本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);
Run Code Online (Sandbox Code Playgroud)

  • 在string.xml资源文件中有什么办法吗? (3认同)
  • 不,那里没有。 (2认同)