google官网地址:

https://developer.android.com/reference/android/text/SpannableString.html

This is the class for text whose content is immutable but to which markup objects can be attached and detached. 

For mutable text, see SpannableStringBuilder.

这类文本的内容是不变的,但标记对象可以被附加和分离。如果目标是可变文本,看SpannableStringBuilder

最近项目中有个需求,图片和文字一块排版,最多显示两行,最开始想到的就是在TextView里面设置android:drawableLeft="@mipmap/tonbaopay_icon"显示图片并用android:drawablePadding="10dp"来控制图片和文字之间的距离,附XML代码:

android:id="@+id/tv_goodscar_title"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:drawableLeft="@mipmap/tonbaopay_icon"

android:drawablePadding="10dp"

android:layout_marginLeft="13dp"

android:layout_marginRight="15dp"

android:layout_toRightOf="@id/iv_goodscar_img"

android:maxLines="2"

android:paddingTop="7dp"

android:text="title"

android:textColor="#333333"

android:textSize="14sp"/>

然而效果是这样的:

Android:使用SpannableString实现图片替换相应的文字_第1张图片

图片被当成整体排在了左边,跟需求是不一样的!下面用SpannableString来实现一下,

XML代码:

android:id="@+id/tv_goodscar_title"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginLeft="13dp"

android:layout_marginRight="15dp"

android:layout_toRightOf="@id/iv_goodscar_img"

android:maxLines="2"

android:paddingTop="7dp"

android:text="title"

android:textColor="#333333"

android:textSize="14sp"/>

在代码中写:

SpannableString msp =newSpannableString("  "+ goodsCart.goods.name);

Drawable rightDrawable =getResources().

getDrawable(R.mipmap.tonbaopay_icon);

rightDrawable.setBounds(0,0,

rightDrawable.getIntrinsicWidth(), rightDrawable.getIntrinsicHeight());

msp.setSpan(new ImageSpan(rightDrawable),0,1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

cellHolder.tv_goodscar_title.setText(msp);

其中goodsCart.goods.name是后台返回的要显示的字符串,前面的空格是要用图片替代的地方,最终效果图如下:


Android:使用SpannableString实现图片替换相应的文字_第2张图片

     跟需求是一样的,嗯,就到这里吧。

更多相关文章

  1. Android 加载图片并存放在缓存中
  2. Android TextView追加文字
  3. android 实现图片的裁剪
  4. Android ImageLoader组件加载图片
  5. 【Android网络编程】获取网络图片,具有缓存功能
  6. android 图片之多点触控放大缩小
  7. Android图片圆角
  8. Android 循环读取名字相似的图片
  9. android加载大图片

随机推荐

  1. android studio一键生成快速开发实现语言
  2. Android(安卓)Studio 从2.3.1升级到3.4.1
  3. Android(安卓)如何快速定位当前页面是哪
  4. Android仿淘宝头条滚动广告条
  5. Android8.0、Android9.0 通知notificatio
  6. android 开机铃音和开机图片以及系统自带
  7. android 对dp单位的理解
  8. android之AsyncQueryHandler详解
  9. Android(安卓)仿直播特效点赞飘爱心
  10. Activity之launchMode(运行模式)