TextView图文混排

我们把图标放在左边,当我们让TextView分多行显示的时候,会出现一种情况,左边的图标并不会与第一行对齐,而是与整个textView居中对齐。

效果图.png

如何达到这样的效果图呢?
我们可以利用SpannableString和ImageSpan。

//构建SpannableString对象
SpannableString spanString = new SpannableString(“ ”+tv_title.getText().toString());
//获取Drawable对象,即将我们的图案转换为Drawable对象,并设置大小
Drawable tvDrawable = ContextCompat.getDrawable(mContext, R.mipmap.hybrid);
tvDrawable.setBounds(0, 6, tvDrawable.getMinimumWidth(), tvDrawable.getMinimumHeight());
//构建ImageSpan 对象
ImageSpan span = new ImageSpan(tvDrawable, ImageSpan.ALIGN_BASELINE);
//设置给上面的SpannableString对象
spanString.setSpan(span, 0, 1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
//最终设置给TextView
tv_title.setText(spanString);

最后解释一下在getText的时候为前面为什么加空格,是应为spanString会替换掉你的字符

你可能感兴趣的:(TextView图文混排)