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"/>

然而效果是这样的:

图片被当成整体排在了左边,跟需求是不一样的!下面用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是后台返回的要显示的字符串,前面的空格是要用图片替代的地方,最终效果图如下:


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

更多相关文章

  1. android GridView(网格视图)
  2. Android(安卓)7.0,8.0拍照loadXmlMetaData(XXXX, java.lang.Strin
  3. Android中将Activity转换成View使用.
  4. android计算器简单版【安卓进化一】
  5. Android(安卓)ImageLoader组件加载图片
  6. android 代码创建快捷方式
  7. android 实现图片的裁剪
  8. Android分享功能
  9. Android(安卓)加载图片并存放在缓存中

随机推荐

  1. Android 使用iperf测试wifi吞吐量
  2. 二、 Android中gravity与layout_gravity
  3. Linux下Android(安卓)ADB驱动安装详解
  4. JNI 入门
  5. 8. android Tab 选项卡控件
  6. Android Service AIDL 远程调用服务 【简
  7. Android Debug certificate expired
  8. android实现服务器图片本地缓存
  9. Android EditText 光标控制,颜色修改,显示
  10. 利用 Android Keystore 系统 加密存储和